iso_duration_parser

Last updated:

0 purchases

iso_duration_parser Image
iso_duration_parser Images
Add to Cart

Description:

iso duration parser

iso_duration_parser #



A package which parses ISO 8061 Duration PnYnMnDTnHnMnS format.
It is a duration format where each value represents an individual duration part.
Usage #
A simple usage example:
void main() {
final dur = IsoDuration.parse('PT36H');
dur.days; // 0
dur.hours; // 36.0
dur.minutes; // 0
dur.seconds; // 0
dur.toSeconds(); // 129600.0
dur.toIso(); // 'PT36H'
final dateTime = DateTime(2021, 1, 20, 8); // 2021-01-20 08:00:00.000
dur.withDate(dateTime); // 2021-01-21 20:00:00.000

final durFormat = IsoDuration.parse('PT4H5M');
durFormat.format('Call me in {hh}h {m}m'); // Call me in 04h 5m

final dur2 = IsoDuration.parse('PT12H30M50.4S');
dur2.hours; // 12.0
dur2.minutes; // 30
dur2.seconds; // 50.4
dur2.toSeconds(); // 45054.5
dur2.toIso(); // 'PT12H30M50.4S'

final dur3 = IsoDuration.parse('P5Y'); // IsoDuration{years: 5, months: 0, weeks: 0, days: 0, hours: 0, minutes: 0, seconds: 0};
//dur3.toSeconds(); // assertion error, years and months must be equal to 0

IsoDuration.parse('P3Y6M4DT12H30M5S'); // IsoDuration{years: 3, months: 6, weeks: 0, days: 4, hours: 12, minutes: 30, seconds: 5};

// can parse decimal (accepts both comma and dots):
IsoDuration.parse('PT8M40.215S'); // IsoDuration{years: 0, months: 0, weeks: 0, days: 0, hours: 0, minutes: 8, seconds: 40.215};

try {
IsoDuration.parse('P 50M');
} on FormatException {
// invalid input in parse throws FormatException
}
IsoDuration.tryParse('P 50M'); // invalid input in tryParse returns null
}
copied to clipboard
Duration ISO 8061 #
Duration Data Type
The duration data type is used to specify a time interval.
This format is often used as response value in REST APIs (YouTube video duration or length of the flight).
The time interval is specified in the following form PnYnMnDTnHnMnS where:

P indicates the period (required)
nY indicates the number of years
nM indicates the number of months
nW indicates the number of weeks
nD indicates the number of days
T indicates the start of a time section (required if you are going to specify hours, minutes, or seconds)
nH indicates the number of hours
nM indicates the number of minutes
nS indicates the number of seconds

... read more
Features and bugs #
Please file feature requests and bugs at the issue tracker or feel free to raise a PR to the linked issue.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.