duration_iso_parser 0.2.0 copy "duration_iso_parser: ^0.2.0" to clipboard
duration_iso_parser: ^0.2.0 copied to clipboard

Package to parse a duration from ISO 8601 string (like P1M, PT15M, P2Y3W4DT5H).

example/main.dart

// ignore_for_file: avoid_print
import 'package:duration_iso_parser/duration_iso_parser.dart';

void main() {
  const parser = DurationParser();

  final p2w = parser.parseIsoString('P2W');
  print(p2w); // CalendarDuration(days: 14)
  print(p2w.resolve(DateTime(2025, 12, 25))); // 2026-01-08 00:00:00.000
  print(p2w.toApproximateDuration()); // 336:00:00.000000

  final p1y2m4d = parser.parseIsoString('P1Y2M4D');
  print(p1y2m4d); // CalendarDuration(years: 1, months: 2, days: 4)
  print(p1y2m4d.resolve(DateTime(2025, 12, 25))); // 2027-03-01 00:00:00.000
  print(p1y2m4d.toApproximateDuration()); // 10296:00:00.000000

  final p2dt11h = parser.parseIsoString('P2DT11H');
  print(p2dt11h); // CalendarDuration(days: 2, hours: 11)
  print(p2dt11h.resolve(DateTime(2025, 12, 25))); // 2025-12-27 11:00:00.000
  print(p2dt11h.toApproximateDuration()); // 59:00:00.000000

  final p1wt10s = parser.parseIsoString('P1WT10S');
  print(p1wt10s); // CalendarDuration(days: 7, seconds: 10)
  print(p1wt10s.resolve(DateTime(2025, 12, 25))); // 2026-01-01 00:00:10.000
  print(p1wt10s.toApproximateDuration()); // 168:00:10.000000

  final pt5m = parser.parseIsoString('PT5M');
  print(pt5m); // CalendarDuration(minutes: 5)
  print(pt5m.resolve(DateTime(2025, 12, 25))); // 2025-12-25 00:05:00.000
  print(pt5m.toApproximateDuration()); // 0:05:00.000000
}
2
likes
160
points
230
downloads

Publisher

verified publisherinnim.ru

Weekly Downloads

Package to parse a duration from ISO 8601 string (like P1M, PT15M, P2Y3W4DT5H).

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

in_date_utils

More

Packages that depend on duration_iso_parser