#iso-8601 #date-time #parser #winnow #rfc-3339

winnow_datetime_assert

Testing/Benchmarking winnow-datetime parsers

1 unstable release

new 0.1.0 Jan 22, 2025

#2 in #winnow


Used in 2 crates

MIT license

135KB
1.5K SLoC

About

This library provides test suits for a datetime format library using winnow-datetime parsers to thoroughly test common formats against the parsers. The test suite varies the format, you'll need to call the generate_tests function with the following arguments. This macro uses Assertion and Coverage to build tests.

The (crate::generate_test_suite!) macro is used to generate tests for a given format. The function compares the complete set of Assertion and format-provided Coverage values to ensure that parse and meets the corresponding expected values of Assertion.

While the tests process the assertions, if coverage is not found for a given assertion it instead tests that an error is returned from the parser. This helps to work as fuzzer by the parser doesn't accept values used in other formats.

Formats

About

Formats follow the patterns laid out in RFC 3339 vs ISO 8601.

NOTE: %C, %X and %Y aren't included at the moment since it's not really entirely clear how those would translate to the datetime modules that the types are based on.

%L - Millennium
%C - Century
%X - Decade
%Y - Year
%M - Month
%D - Day
%V - Week Year
%W - Week
%w - Week Day
%O - Ordinal Day

%h - Hour
%m - Minute
%s - Second
%u - Microsecond

%Z - Zone Hour
%z - Zone Minute

%[,.]3x - Value including fraction with given precision, using either comma or dot.
%−Z     - Use U+2212 for negative timezone hours

Dates

Format Example RFC 3339 ISO 8601 HTML
%Y-%M-%D 2024-12-22 ✔️ ✔️ ✔️
%C 20 ✔️
%X 202 ✔️
%Y 2024 ✔️
%Y-%M 2024-12 ✔️ ✔️
%Y-%O 2024-357 ✔️
%V-W%W 2024-W51 ✔️ ✔️
%V-W%W-%w 2024-W51-7 ✔️
%Y%M%D 20241222 ✔️
%Y%O 2024357 ✔️
%VW%W 2024W51 ✔️
%VW%W%w 2024W517 ✔️
--%M-%D --12-22 ✔️
%M-%D 12-22 ✔️

Times

Format Example RFC 3339 ISO 8601 HTML
%h:%m:%s%Z:%z 07:42:55-08:00 ✔️ ✔️
%h:%m:%.1s%Z:%z 07:42:55.8-08:00 ✔️ ✔️
%h:%m:%.2s%Z:%z 07:42:55.87-08:00 ✔️ ✔️
%h:%m:%.3s%Z:%z 07:42:55.870-08:00 ✔️ ✔️
%h:%m:%s.%u%Z:%z 07:42:55.870479-08:00 ✔️ ✔️
%h:%m:%sZ 15:42:55Z ✔️ ✔️
%h:%m:%.1sZ 15:42:55.8Z ✔️ ✔️
%h:%m:%.2sZ 15:42:55.87Z ✔️ ✔️
%h:%m:%.3sZ 15:42:55.870Z ✔️ ✔️
%h:%m:%s.%uZ 15:42:55.870479Z ✔️ ✔️
%h:%m:%s+00:00 15:42:55+00:00 ✔️ ✔️
%h:%m:%.1s+00:00 15:42:55.8+00:00 ✔️ ✔️
%h:%m:%.3s+00:00 15:42:55.870+00:00 ✔️ ✔️
%h:%m:%s.%u+00:00 15:42:55.870479+00:00 ✔️ ✔️
%h:%m:%s-00:00 15:42:55-00:00 ✔️
%h:%m:%.1s-00:00 15:42:55.8-00:00 ✔️
%h:%m:%.3s-00:00 15:42:55.870-00:00 ✔️
%h:%m:%s.%u-00:00 15:42:55.870479-00:00 ✔️
%h 07 ✔️
%,1h 07,7 ✔️
%.1h 07.7 ✔️
%h:%m 07:42 ✔️ ✔️
%h:%,1m 07:42,9 ✔️
%h:%.1m 07:42.9 ✔️
%h:%m:%s 07:42:55 ✔️ ✔️
%h:%m:%.1s 07:42:55.8 ✔️ ✔️
%h:%m:%.2s 07:42:55.87 ✔️ ✔️
%h:%m:%,3s 07:42:55,870 ✔️
%h:%m:%.3s 07:42:55.870 ✔️ ✔️
%h:%m:%s,%u 07:42:55,870479 ✔️
%h:%m:%s.%u 07:42:55.870479 ✔️
%hZ 15Z ✔️
%,1hZ 15,7Z ✔️
%.1hZ 15.7Z ✔️
%h:%mZ 15:42Z ✔️
%h:%,1mZ 15:42,9Z ✔️
%h:%.1mZ 15:42.9Z ✔️
%h:%m:%,3sZ 15:42:55,870Z ✔️
%h:%m:%s,%uZ 15:42:55,870479Z ✔️
%h%Z 07-08 ✔️
%,1h%Z 07,7-08 ✔️
%.1h%Z 07.7-08 ✔️
%h:%m%Z 07:42-08 ✔️
%h:%,1m%Z 07:42,9-08 ✔️
%h:%.1m%Z 07:42.9-08 ✔️
%h:%m:%s%Z 07:42:55-08 ✔️
%h:%m:%.1s%Z 07:42:55.8-08 ✔️
%h:%m:%.2s%Z 07:42:55.87-08 ✔️
%h:%m:%,3s%Z 07:42:55,870-08 ✔️
%h:%m:%.3s%Z 07:42:55.870-08 ✔️
%h:%m:%s,%u%Z 07:42:55,870479-08 ✔️
%h:%m:%s.%u%Z 07:42:55.870479-08 ✔️
%h%Z:%z 07-08:00 ✔️
%,1h%Z:%z 07,7-08:00 ✔️
%.1h%Z:%z 07.7-08:00 ✔️
%h:%m%Z:%z 07:42-08:00 ✔️
%h:%,1m%Z:%z 07:42,9-08:00 ✔️
%h:%.1m%Z:%z 07:42.9-08:00 ✔️
%h:%m:%,3s%Z:%z 07:42:55,870-08:00 ✔️
%h:%m:%s,%u%Z:%z 07:42:55,870479-08:00 ✔️
T%h T07 ✔️
T%,1h T07,7 ✔️
T%.1h T07.7 ✔️
T%h:%m T07:42 ✔️
T%h:%,1m T07:42,9 ✔️
T%h:%.1m T07:42.9 ✔️
T%h:%m:%s T07:42:55 ✔️
T%h:%m:%.1s T07:42:55.8 ✔️
T%h:%m:%.2s T07:42:55.87 ✔️
T%h:%m:%,3s T07:42:55,870 ✔️
T%h:%m:%.3s T07:42:55.870 ✔️
T%h:%m:%s,%u T07:42:55,870479 ✔️
T%h:%m:%s.%u T07:42:55.870479 ✔️
T%hZ T15Z ✔️
T%,1hZ T15,7Z ✔️
T%.1hZ T15.7Z ✔️
T%h:%mZ T15:42Z ✔️
T%h:%,1mZ T15:42,9Z ✔️
T%h:%.1mZ T15:42.9Z ✔️
T%h:%m:%sZ T15:42:55Z ✔️
T%h:%m:%.1sZ T15:42:55.8Z ✔️
T%h:%m:%.2sZ T15:42:55.87Z ✔️
T%h:%m:%,3sZ T15:42:55,870Z ✔️
T%h:%m:%.3sZ T15:42:55.870Z ✔️
T%h:%m:%s,%uZ T15:42:55,870479Z ✔️
T%h:%m:%s.%uZ T15:42:55.870479Z ✔️
T%h%Z T07-08 ✔️
T%,1h%Z T07,7-08 ✔️
T%.1h%Z T07.7-08 ✔️
T%h:%m%Z T07:42-08 ✔️
T%h:%,1m%Z T07:42,9-08 ✔️
T%h:%.1m%Z T07:42.9-08 ✔️
T%h:%m:%s%Z T07:42:55-08 ✔️
T%h:%m:%.1s%Z T07:42:55.8-08 ✔️
T%h:%m:%.2s%Z T07:42:55.87-08 ✔️
T%h:%m:%,3s%Z T07:42:55,870-08 ✔️
T%h:%m:%.3s%Z T07:42:55.870-08 ✔️
T%h:%m:%s,%u%Z T07:42:55,870479-08 ✔️
T%h:%m:%s.%u%Z T07:42:55.870479-08 ✔️
T%h%Z:%z T07-08:00 ✔️
T%,1h%Z:%z T07,7-08:00 ✔️
T%.1h%Z:%z T07.7-08:00 ✔️
T%h:%m%Z:%z T07:42-08:00 ✔️
T%h:%,1m%Z:%z T07:42,9-08:00 ✔️
T%h:%.1m%Z:%z T07:42.9-08:00 ✔️
T%h:%m:%s%Z:%z T07:42:55-08:00 ✔️
T%h:%m:%.1s%Z:%z T07:42:55.8-08:00 ✔️
T%h:%m:%.2s%Z:%z T07:42:55.87-08:00 ✔️
T%h:%m:%,3s%Z:%z T07:42:55,870-08:00 ✔️
T%h:%m:%.3s%Z:%z T07:42:55.870-08:00 ✔️
T%h:%m:%s,%u%Z:%z T07:42:55,870479-08:00 ✔️
T%h:%m:%s.%u%Z:%z T07:42:55.870479-08:00 ✔️
%h%m 0742 ✔️
%h%,1m 0742,9 ✔️
%h%.1m 0742.9 ✔️
%h%m%s 074255 ✔️
%h%m%.1s 074255.8 ✔️
%h%m%.2s 074255.87 ✔️
%h%m%,3s 074255,870 ✔️
%h%m%.3s 074255.870 ✔️
%h%m%s,%u 074255,870479 ✔️
%h%m%s.%u 074255.870479 ✔️
%h%mZ 1542Z ✔️
%h%,1mZ 1542,9Z ✔️
%h%.1mZ 1542.9Z ✔️
%h%m%sZ 154255Z ✔️
%h%m%.1sZ 154255.8Z ✔️
%h%m%.2sZ 154255.87Z ✔️
%h%m%,3sZ 154255,870Z ✔️
%h%m%.3sZ 154255.870Z ✔️
%h%m%s,%uZ 154255,870479Z ✔️
%h%m%s.%uZ 154255.870479Z ✔️
%h%m%Z 0742-08 ✔️
%h%,1m%Z 0742,9-08 ✔️
%h%.1m%Z 0742.9-08 ✔️
%h%m%s%Z 074255-08 ✔️
%h%m%.1s%Z 074255.8-08 ✔️
%h%m%.2s%Z 074255.87-08 ✔️
%h%m%,3s%Z 074255,870-08 ✔️
%h%m%.3s%Z 074255.870-08 ✔️
%h%m%s,%u%Z 074255,870479-08 ✔️
%h%m%s.%u%Z 074255.870479-08 ✔️
%h%Z%z 07-0800 ✔️
%,1h%Z%z 07,7-0800 ✔️
%.1h%Z%z 07.7-0800 ✔️
%h%m%Z%z 0742-0800 ✔️
%h%,1m%Z%z 0742,9-0800 ✔️
%h%.1m%Z%z 0742.9-0800 ✔️
%h%m%s%Z%z 074255-0800 ✔️
%h%m%.1s%Z%z 074255.8-0800 ✔️
%h%m%.2s%Z%z 074255.87-0800 ✔️
%h%m%,3s%Z%z 074255,870-0800 ✔️
%h%m%.3s%Z%z 074255.870-0800 ✔️
%h%m%s,%u%Z%z 074255,870479-0800 ✔️
%h%m%s.%u%Z%z 074255.870479-0800 ✔️
T%h%m T0742 ✔️
T%h%,1m T0742,9 ✔️
T%h%.1m T0742.9 ✔️
T%h%m%s T074255 ✔️
T%h%m%.1s T074255.8 ✔️
T%h%m%.2s T074255.87 ✔️
T%h%m%,3s T074255,870 ✔️
T%h%m%.3s T074255.870 ✔️
T%h%m%s,%u T074255,870479 ✔️
T%h%m%s.%u T074255.870479 ✔️
T%h%mZ T1542Z ✔️
T%h%,1mZ T1542,9Z ✔️
T%h%.1mZ T1542.9Z ✔️
T%h%m%sZ T154255Z ✔️
T%h%m%.1sZ T154255.8Z ✔️
T%h%m%.2sZ T154255.87Z ✔️
T%h%m%,3sZ T154255,870Z ✔️
T%h%m%.3sZ T154255.870Z ✔️
T%h%m%s,%uZ T154255,870479Z ✔️
T%h%m%s.%uZ T154255.870479Z ✔️
T%h%m%Z T0742-08 ✔️
T%h%,1m%Z T0742,9-08 ✔️
T%h%.1m%Z T0742.9-08 ✔️
T%h%m%s%Z T074255-08 ✔️
T%h%m%.1s%Z T074255.8-08 ✔️
T%h%m%.2s%Z T074255.87-08 ✔️
T%h%m%,3s%Z T074255,870-08 ✔️
T%h%m%.3s%Z T074255.870-08 ✔️
T%h%m%s,%u%Z T074255,870479-08 ✔️
T%h%m%s.%u%Z T074255.870479-08 ✔️
T%h%Z%z T07-0800 ✔️
T%,1h%Z%z T07,7-0800 ✔️
T%.1h%Z%z T07.7-0800 ✔️
T%h%m%Z%z T0742-0800 ✔️
T%h%,1m%Z%z T0742,9-0800 ✔️
T%h%.1m%Z%z T0742.9-0800 ✔️
T%h%m%s%Z%z T074255-0800 ✔️
T%h%m%.1s%Z%z T074255.8-0800 ✔️
T%h%m%.2s%Z%z T074255.87-0800 ✔️
T%h%m%,3s%Z%z T074255,870-0800 ✔️
T%h%m%.3s%Z%z T074255.870-0800 ✔️
T%h%m%s,%u%Z%z T074255,870479-0800 ✔️
T%h%m%s.%u%Z%z T074255.870479-0800 ✔️

DateTimes

Format Example RFC 3339 ISO 8601 HTML
%Y-%M-%DT%h:%m:%sZ 2024-12-22T15:42:55Z ✔️ ✔️ ✔️
%Y-%M-%DT%h:%m:%.1sZ 2024-12-22T15:42:55.8Z ✔️ ✔️ ✔️
%Y-%M-%DT%h:%m:%.2sZ 2024-12-22T15:42:55.87Z ✔️ ✔️ ✔️
%Y-%M-%DT%h:%m:%.3sZ 2024-12-22T15:42:55.870Z ✔️ ✔️ ✔️
%Y-%M-%DT%h:%m:%s.%uZ 2024-12-22T15:42:55.870479Z ✔️ ✔️
%Y-%M-%Dt%h:%m:%sz 2024-12-22t15:42:55z ✔️ ✔️
%Y-%M-%Dt%h:%m:%.3sz 2024-12-22t15:42:55.870z ✔️
%Y-%M-%DT%h:%m:%s%Z:%z 2024-12-22T07:42:55-08:00 ✔️ ✔️ ✔️
%Y-%M-%DT%h:%m:%.3s%Z:%z 2024-12-22T07:42:55.870-08:00 ✔️ ✔️ ✔️
%Y-%M-%DT%h:%m:%s.%u%Z:%z 2024-12-22T07:42:55.870479-08:00 ✔️ ✔️
%Y-%M-%D %h:%m:%s%Z:%z 2024-12-22 07:42:55-08:00 ✔️ ✔️
%Y-%M-%D %h:%m:%.1s%Z:%z 2024-12-22 07:42:55.8-08:00 ✔️ ✔️
%Y-%M-%D %h:%m:%.2s%Z:%z 2024-12-22 07:42:55.87-08:00 ✔️ ✔️
%Y-%M-%D %h:%m:%.3s%Z:%z 2024-12-22 07:42:55.870-08:00 ✔️ ✔️
%Y-%M-%D %h:%m:%s.%u%Z:%z 2024-12-22 07:42:55.870479-08:00 ✔️
%Y-%M-%D %h:%m:%sZ 2024-12-22 15:42:55Z ✔️ ✔️
%Y-%M-%D_%h:%m:%sZ 2024-12-22_15:42:55Z ✔️
%Y-%M-%D %h:%m:%sz 2024-12-22 15:42:55z ✔️
%Y-%M-%D_%h:%m:%sz 2024-12-22_15:42:55z ✔️
%Y-%M-%D %h:%m:%.1sZ 2024-12-22 15:42:55.8Z ✔️ ✔️
%Y-%M-%D %h:%m:%.2sZ 2024-12-22 15:42:55.87Z ✔️ ✔️
%Y-%M-%D %h:%m:%.3sZ 2024-12-22 15:42:55.870Z ✔️ ✔️
%Y-%M-%D_%h:%m:%.3sZ 2024-12-22_15:42:55.870Z ✔️
%Y-%M-%D %h:%m:%s.%uZ 2024-12-22 15:42:55.870479Z ✔️
%Y-%M-%D_%h:%m:%s.%uZ 2024-12-22_15:42:55.870479Z ✔️
%Y-%M-%D %h:%m:%.3sz 2024-12-22 15:42:55.870z ✔️
%Y-%M-%D_%h:%m:%.3sz 2024-12-22_15:42:55.870z ✔️
%Y-%M-%D %h:%m:%s.%uz 2024-12-22 15:42:55.870479z ✔️
%Y-%M-%D_%h:%m:%s.%uz 2024-12-22_15:42:55.870479z ✔️
%Y-%M-%D %h:%m:%s-00:00 2024-12-22 15:42:55-00:00 ✔️
%Y-%M-%D %h:%m:%.3s-00:00 2024-12-22 15:42:55.870-00:00 ✔️
%Y-%M-%DT%h:%m:%s-00:00 2024-12-22T15:42:55-00:00 ✔️
%Y-%M-%DT%h:%m:%.3s-00:00 2024-12-22T15:42:55.870-00:00 ✔️
%Y-%M-%DT%h:%m:%s+08:45 2024-12-23T00:27:55+08:45 ✔️ ✔️ ✔️
%Y-%M-%DT%h:%m:%s+00:00 2024-12-22T15:42:55+00:00 ✔️ ✔️ ✔️
%Y-%M-%DT%h:%m:%.3s+00:00 2024-12-22T15:42:55.870+00:00 ✔️ ✔️ ✔️
%Y-%M-%DT%h 2024-12-22T07 ✔️
%Y-%M-%DT%,1h 2024-12-22T07,7 ✔️
%Y-%M-%DT%.1h 2024-12-22T07.7 ✔️
%Y-%M-%DT%h:%m 2024-12-22T07:42 ✔️ ✔️
%Y-%M-%DT%h:%,1m 2024-12-22T07:42,9 ✔️
%Y-%M-%DT%h:%.1m 2024-12-22T07:42.9 ✔️
%Y-%M-%DT%h:%m:%s 2024-12-22T07:42:55 ✔️ ✔️
%Y-%M-%DT%h:%m:%.1s 2024-12-22T07:42:55.8 ✔️ ✔️
%Y-%M-%DT%h:%m:%.2s 2024-12-22T07:42:55.87 ✔️ ✔️
%Y-%M-%DT%h:%m:%,3s 2024-12-22T07:42:55,870 ✔️
%Y-%M-%DT%h:%m:%.3s 2024-12-22T07:42:55.870 ✔️ ✔️
%Y-%M-%DT%h:%m:%s,%u 2024-12-22T07:42:55,870479 ✔️
%Y-%M-%DT%h:%m:%s.%u 2024-12-22T07:42:55.870479 ✔️
%Y-%M-%DT%hZ 2024-12-22T15Z ✔️
%Y-%M-%DT%,1hZ 2024-12-22T15,7Z ✔️
%Y-%M-%DT%.1hZ 2024-12-22T15.7Z ✔️
%Y-%M-%DT%h:%mZ 2024-12-22T15:42Z ✔️ ✔️
%Y-%M-%DT%h:%,1mZ 2024-12-22T15:42,9Z ✔️
%Y-%M-%DT%h:%.1mZ 2024-12-22T15:42.9Z ✔️
%Y-%M-%DT%h:%m:%,3sZ 2024-12-22T15:42:55,870Z ✔️
%Y-%M-%DT%h:%m:%s,%uZ 2024-12-22T15:42:55,870479Z ✔️
%Y-%M-%DT%h%Z 2024-12-22T07-08 ✔️
%Y-%M-%DT%,1h%Z 2024-12-22T07,7-08 ✔️
%Y-%M-%DT%.1h%Z 2024-12-22T07.7-08 ✔️
%Y-%M-%DT%h:%m%Z 2024-12-22T07:42-08 ✔️
%Y-%M-%DT%h:%,1m%Z 2024-12-22T07:42,9-08 ✔️
%Y-%M-%DT%h:%.1m%Z 2024-12-22T07:42.9-08 ✔️
%Y-%M-%DT%h:%m:%s%Z 2024-12-22T07:42:55-08 ✔️
%Y-%M-%DT%h:%m:%.1s%Z 2024-12-22T07:42:55.8-08 ✔️
%Y-%M-%DT%h:%m:%.2s%Z 2024-12-22T07:42:55.87-08 ✔️
%Y-%M-%DT%h:%m:%,3s%Z 2024-12-22T07:42:55,870-08 ✔️
%Y-%M-%DT%h:%m:%.3s%Z 2024-12-22T07:42:55.870-08 ✔️
%Y-%M-%DT%h:%m:%s,%u%Z 2024-12-22T07:42:55,870479-08 ✔️
%Y-%M-%DT%h:%m:%s.%u%Z 2024-12-22T07:42:55.870479-08 ✔️
%Y-%M-%DT%h%Z:%z 2024-12-22T07-08:00 ✔️
%Y-%M-%DT%,1h%Z:%z 2024-12-22T07,7-08:00 ✔️
%Y-%M-%DT%.1h%Z:%z 2024-12-22T07.7-08:00 ✔️
%Y-%M-%DT%h:%m%Z:%z 2024-12-22T07:42-08:00 ✔️ ✔️
%Y-%M-%DT%h:%,1m%Z:%z 2024-12-22T07:42,9-08:00 ✔️
%Y-%M-%DT%h:%.1m%Z:%z 2024-12-22T07:42.9-08:00 ✔️
%Y-%M-%DT%h:%m:%.1s%Z:%z 2024-12-22T07:42:55.8-08:00 ✔️ ✔️
%Y-%M-%DT%h:%m:%.2s%Z:%z 2024-12-22T07:42:55.87-08:00 ✔️ ✔️
%Y-%M-%DT%h:%m:%,3s%Z:%z 2024-12-22T07:42:55,870-08:00 ✔️
%Y-%M-%DT%h:%m:%s,%u%Z:%z 2024-12-22T07:42:55,870479-08:00 ✔️
%V-W%W-%wT%h 2024-W51-7T07 ✔️
%V-W%W-%wT%,1h 2024-W51-7T07,7 ✔️
%V-W%W-%wT%.1h 2024-W51-7T07.7 ✔️
%V-W%W-%wT%h:%m 2024-W51-7T07:42 ✔️
%V-W%W-%wT%h:%,1m 2024-W51-7T07:42,9 ✔️
%V-W%W-%wT%h:%.1m 2024-W51-7T07:42.9 ✔️
%V-W%W-%wT%h:%m:%s 2024-W51-7T07:42:55 ✔️
%V-W%W-%wT%h:%m:%.1s 2024-W51-7T07:42:55.8 ✔️
%V-W%W-%wT%h:%m:%.2s 2024-W51-7T07:42:55.87 ✔️
%V-W%W-%wT%h:%m:%,3s 2024-W51-7T07:42:55,870 ✔️
%V-W%W-%wT%h:%m:%.3s 2024-W51-7T07:42:55.870 ✔️
%V-W%W-%wT%h:%m:%s,%u 2024-W51-7T07:42:55,870479 ✔️
%V-W%W-%wT%h:%m:%s.%u 2024-W51-7T07:42:55.870479 ✔️
%V-W%W-%wT%hZ 2024-W51-7T15Z ✔️
%V-W%W-%wT%,1hZ 2024-W51-7T15,7Z ✔️
%V-W%W-%wT%.1hZ 2024-W51-7T15.7Z ✔️
%V-W%W-%wT%h:%mZ 2024-W51-7T15:42Z ✔️
%V-W%W-%wT%h:%,1mZ 2024-W51-7T15:42,9Z ✔️
%V-W%W-%wT%h:%.1mZ 2024-W51-7T15:42.9Z ✔️
%V-W%W-%wT%h:%m:%sZ 2024-W51-7T15:42:55Z ✔️
%V-W%W-%wT%h:%m:%.1sZ 2024-W51-7T15:42:55.8Z ✔️
%V-W%W-%wT%h:%m:%.2sZ 2024-W51-7T15:42:55.87Z ✔️
%V-W%W-%wT%h:%m:%,3sZ 2024-W51-7T15:42:55,870Z ✔️
%V-W%W-%wT%h:%m:%.3sZ 2024-W51-7T15:42:55.870Z ✔️
%V-W%W-%wT%h:%m:%s,%uZ 2024-W51-7T15:42:55,870479Z ✔️
%V-W%W-%wT%h:%m:%s.%uZ 2024-W51-7T15:42:55.870479Z ✔️
%V-W%W-%wT%h%Z 2024-W51-7T07-08 ✔️
%V-W%W-%wT%,1h%Z 2024-W51-7T07,7-08 ✔️
%V-W%W-%wT%.1h%Z 2024-W51-7T07.7-08 ✔️
%V-W%W-%wT%h:%m%Z 2024-W51-7T07:42-08 ✔️
%V-W%W-%wT%h:%,1m%Z 2024-W51-7T07:42,9-08 ✔️
%V-W%W-%wT%h:%.1m%Z 2024-W51-7T07:42.9-08 ✔️
%V-W%W-%wT%h:%m:%s%Z 2024-W51-7T07:42:55-08 ✔️
%V-W%W-%wT%h:%m:%.1s%Z 2024-W51-7T07:42:55.8-08 ✔️
%V-W%W-%wT%h:%m:%.2s%Z 2024-W51-7T07:42:55.87-08 ✔️
%V-W%W-%wT%h:%m:%,3s%Z 2024-W51-7T07:42:55,870-08 ✔️
%V-W%W-%wT%h:%m:%.3s%Z 2024-W51-7T07:42:55.870-08 ✔️
%V-W%W-%wT%h:%m:%s,%u%Z 2024-W51-7T07:42:55,870479-08 ✔️
%V-W%W-%wT%h:%m:%s.%u%Z 2024-W51-7T07:42:55.870479-08 ✔️
%V-W%W-%wT%h%Z:%z 2024-W51-7T07-08:00 ✔️
%V-W%W-%wT%,1h%Z:%z 2024-W51-7T07,7-08:00 ✔️
%V-W%W-%wT%.1h%Z:%z 2024-W51-7T07.7-08:00 ✔️
%V-W%W-%wT%h:%m%Z:%z 2024-W51-7T07:42-08:00 ✔️
%V-W%W-%wT%h:%,1m%Z:%z 2024-W51-7T07:42,9-08:00 ✔️
%V-W%W-%wT%h:%.1m%Z:%z 2024-W51-7T07:42.9-08:00 ✔️
%V-W%W-%wT%h:%m:%s%Z:%z 2024-W51-7T07:42:55-08:00 ✔️
%V-W%W-%wT%h:%m:%.1s%Z:%z 2024-W51-7T07:42:55.8-08:00 ✔️
%V-W%W-%wT%h:%m:%.2s%Z:%z 2024-W51-7T07:42:55.87-08:00 ✔️
%V-W%W-%wT%h:%m:%,3s%Z:%z 2024-W51-7T07:42:55,870-08:00 ✔️
%V-W%W-%wT%h:%m:%.3s%Z:%z 2024-W51-7T07:42:55.870-08:00 ✔️
%V-W%W-%wT%h:%m:%s,%u%Z:%z 2024-W51-7T07:42:55,870479-08:00 ✔️
%V-W%W-%wT%h:%m:%s.%u%Z:%z 2024-W51-7T07:42:55.870479-08:00 ✔️
%Y-%OT%h 2024-357T07 ✔️
%Y-%OT%,1h 2024-357T07,7 ✔️
%Y-%OT%.1h 2024-357T07.7 ✔️
%Y-%OT%h:%m 2024-357T07:42 ✔️
%Y-%OT%h:%,1m 2024-357T07:42,9 ✔️
%Y-%OT%h:%.1m 2024-357T07:42.9 ✔️
%Y-%OT%h:%m:%s 2024-357T07:42:55 ✔️
%Y-%OT%h:%m:%.1s 2024-357T07:42:55.8 ✔️
%Y-%OT%h:%m:%.2s 2024-357T07:42:55.87 ✔️
%Y-%OT%h:%m:%,3s 2024-357T07:42:55,870 ✔️
%Y-%OT%h:%m:%.3s 2024-357T07:42:55.870 ✔️
%Y-%OT%h:%m:%s,%u 2024-357T07:42:55,870479 ✔️
%Y-%OT%h:%m:%s.%u 2024-357T07:42:55.870479 ✔️
%Y-%OT%hZ 2024-357T15Z ✔️
%Y-%OT%,1hZ 2024-357T15,7Z ✔️
%Y-%OT%.1hZ 2024-357T15.7Z ✔️
%Y-%OT%h:%mZ 2024-357T15:42Z ✔️
%Y-%OT%h:%,1mZ 2024-357T15:42,9Z ✔️
%Y-%OT%h:%.1mZ 2024-357T15:42.9Z ✔️
%Y-%OT%h:%m:%sZ 2024-357T15:42:55Z ✔️
%Y-%OT%h:%m:%.1sZ 2024-357T15:42:55.8Z ✔️
%Y-%OT%h:%m:%.2sZ 2024-357T15:42:55.87Z ✔️
%Y-%OT%h:%m:%,3sZ 2024-357T15:42:55,870Z ✔️
%Y-%OT%h:%m:%.3sZ 2024-357T15:42:55.870Z ✔️
%Y-%OT%h:%m:%s,%uZ 2024-357T15:42:55,870479Z ✔️
%Y-%OT%h:%m:%s.%uZ 2024-357T15:42:55.870479Z ✔️
%Y-%OT%h%Z 2024-357T07-08 ✔️
%Y-%OT%,1h%Z 2024-357T07,7-08 ✔️
%Y-%OT%.1h%Z 2024-357T07.7-08 ✔️
%Y-%OT%h:%m%Z 2024-357T07:42-08 ✔️
%Y-%OT%h:%,1m%Z 2024-357T07:42,9-08 ✔️
%Y-%OT%h:%.1m%Z 2024-357T07:42.9-08 ✔️
%Y-%OT%h:%m:%s%Z 2024-357T07:42:55-08 ✔️
%Y-%OT%h:%m:%.1s%Z 2024-357T07:42:55.8-08 ✔️
%Y-%OT%h:%m:%.2s%Z 2024-357T07:42:55.87-08 ✔️
%Y-%OT%h:%m:%,3s%Z 2024-357T07:42:55,870-08 ✔️
%Y-%OT%h:%m:%.3s%Z 2024-357T07:42:55.870-08 ✔️
%Y-%OT%h:%m:%s,%u%Z 2024-357T07:42:55,870479-08 ✔️
%Y-%OT%h:%m:%s.%u%Z 2024-357T07:42:55.870479-08 ✔️
%Y-%OT%h%Z:%z 2024-357T07-08:00 ✔️
%Y-%OT%,1h%Z:%z 2024-357T07,7-08:00 ✔️
%Y-%OT%.1h%Z:%z 2024-357T07.7-08:00 ✔️
%Y-%OT%h:%m%Z:%z 2024-357T07:42-08:00 ✔️
%Y-%OT%h:%,1m%Z:%z 2024-357T07:42,9-08:00 ✔️
%Y-%OT%h:%.1m%Z:%z 2024-357T07:42.9-08:00 ✔️
%Y-%OT%h:%m:%s%Z:%z 2024-357T07:42:55-08:00 ✔️
%Y-%OT%h:%m:%.1s%Z:%z 2024-357T07:42:55.8-08:00 ✔️
%Y-%OT%h:%m:%.2s%Z:%z 2024-357T07:42:55.87-08:00 ✔️
%Y-%OT%h:%m:%,3s%Z:%z 2024-357T07:42:55,870-08:00 ✔️
%Y-%OT%h:%m:%.3s%Z:%z 2024-357T07:42:55.870-08:00 ✔️
%Y-%OT%h:%m:%s,%u%Z:%z 2024-357T07:42:55,870479-08:00 ✔️
%Y-%OT%h:%m:%s.%u%Z:%z 2024-357T07:42:55.870479-08:00 ✔️
%Y%M%DT%h 20241222T07 ✔️
%Y%M%DT%,1h 20241222T07,7 ✔️
%Y%M%DT%.1h 20241222T07.7 ✔️
%Y%M%DT%h%m 20241222T0742 ✔️
%Y%M%DT%h%,1m 20241222T0742,9 ✔️
%Y%M%DT%h%.1m 20241222T0742.9 ✔️
%Y%M%DT%h%m%s 20241222T074255 ✔️
%Y%M%DT%h%m%.1s 20241222T074255.8 ✔️
%Y%M%DT%h%m%.2s 20241222T074255.87 ✔️
%Y%M%DT%h%m%,3s 20241222T074255,870 ✔️
%Y%M%DT%h%m%.3s 20241222T074255.870 ✔️
%Y%M%DT%h%m%s,%u 20241222T074255,870479 ✔️
%Y%M%DT%h%m%s.%u 20241222T074255.870479 ✔️
%Y%M%DT%hZ 20241222T15Z ✔️
%Y%M%DT%,1hZ 20241222T15,7Z ✔️
%Y%M%DT%.1hZ 20241222T15.7Z ✔️
%Y%M%DT%h%mZ 20241222T1542Z ✔️
%Y%M%DT%h%,1mZ 20241222T1542,9Z ✔️
%Y%M%DT%h%.1mZ 20241222T1542.9Z ✔️
%Y%M%DT%h%m%sZ 20241222T154255Z ✔️
%Y%M%DT%h%m%.1sZ 20241222T154255.8Z ✔️
%Y%M%DT%h%m%.2sZ 20241222T154255.87Z ✔️
%Y%M%DT%h%m%,3sZ 20241222T154255,870Z ✔️
%Y%M%DT%h%m%.3sZ 20241222T154255.870Z ✔️
%Y%M%DT%h%m%s,%uZ 20241222T154255,870479Z ✔️
%Y%M%DT%h%m%s.%uZ 20241222T154255.870479Z ✔️
%Y%M%DT%h%Z 20241222T07-08 ✔️
%Y%M%DT%,1h%Z 20241222T07,7-08 ✔️
%Y%M%DT%.1h%Z 20241222T07.7-08 ✔️
%Y%M%DT%h%m%Z 20241222T0742-08 ✔️
%Y%M%DT%h%,1m%Z 20241222T0742,9-08 ✔️
%Y%M%DT%h%.1m%Z 20241222T0742.9-08 ✔️
%Y%M%DT%h%m%s%Z 20241222T074255-08 ✔️
%Y%M%DT%h%m%.1s%Z 20241222T074255.8-08 ✔️
%Y%M%DT%h%m%.2s%Z 20241222T074255.87-08 ✔️
%Y%M%DT%h%m%,3s%Z 20241222T074255,870-08 ✔️
%Y%M%DT%h%m%.3s%Z 20241222T074255.870-08 ✔️
%Y%M%DT%h%m%s,%u%Z 20241222T074255,870479-08 ✔️
%Y%M%DT%h%m%s.%u%Z 20241222T074255.870479-08 ✔️
%Y%M%DT%h%Z%z 20241222T07-0800 ✔️
%Y%M%DT%,1h%Z%z 20241222T07,7-0800 ✔️
%Y%M%DT%.1h%Z%z 20241222T07.7-0800 ✔️
%Y%M%DT%h%m%Z%z 20241222T0742-0800 ✔️
%Y%M%DT%h%,1m%Z%z 20241222T0742,9-0800 ✔️
%Y%M%DT%h%.1m%Z%z 20241222T0742.9-0800 ✔️
%Y%M%DT%h%m%s%Z%z 20241222T074255-0800 ✔️
%Y%M%DT%h%m%.1s%Z%z 20241222T074255.8-0800 ✔️
%Y%M%DT%h%m%.2s%Z%z 20241222T074255.87-0800 ✔️
%Y%M%DT%h%m%,3s%Z%z 20241222T074255,870-0800 ✔️
%Y%M%DT%h%m%.3s%Z%z 20241222T074255.870-0800 ✔️
%Y%M%DT%h%m%s,%u%Z%z 20241222T074255,870479-0800 ✔️
%Y%M%DT%h%m%s.%u%Z%z 20241222T074255.870479-0800 ✔️
%VW%W%wT%h 2024W517T07 ✔️
%VW%W%wT%,1h 2024W517T07,7 ✔️
%VW%W%wT%.1h 2024W517T07.7 ✔️
%VW%W%wT%h%m 2024W517T0742 ✔️
%VW%W%wT%h%,1m 2024W517T0742,9 ✔️
%VW%W%wT%h%.1m 2024W517T0742.9 ✔️
%VW%W%wT%h%m%s 2024W517T074255 ✔️
%VW%W%wT%h%m%.1s 2024W517T074255.8 ✔️
%VW%W%wT%h%m%.2s 2024W517T074255.87 ✔️
%VW%W%wT%h%m%,3s 2024W517T074255,870 ✔️
%VW%W%wT%h%m%.3s 2024W517T074255.870 ✔️
%VW%W%wT%h%m%s,%u 2024W517T074255,870479 ✔️
%VW%W%wT%h%m%s.%u 2024W517T074255.870479 ✔️
%VW%W%wT%hZ 2024W517T15Z ✔️
%VW%W%wT%,1hZ 2024W517T15,7Z ✔️
%VW%W%wT%.1hZ 2024W517T15.7Z ✔️
%VW%W%wT%h%mZ 2024W517T1542Z ✔️
%VW%W%wT%h%,1mZ 2024W517T1542,9Z ✔️
%VW%W%wT%h%.1mZ 2024W517T1542.9Z ✔️
%VW%W%wT%h%m%sZ 2024W517T154255Z ✔️
%VW%W%wT%h%m%.1sZ 2024W517T154255.8Z ✔️
%VW%W%wT%h%m%.2sZ 2024W517T154255.87Z ✔️
%VW%W%wT%h%m%,3sZ 2024W517T154255,870Z ✔️
%VW%W%wT%h%m%.3sZ 2024W517T154255.870Z ✔️
%VW%W%wT%h%m%s,%uZ 2024W517T154255,870479Z ✔️
%VW%W%wT%h%m%s.%uZ 2024W517T154255.870479Z ✔️
%VW%W%wT%h%Z 2024W517T07-08 ✔️
%VW%W%wT%,1h%Z 2024W517T07,7-08 ✔️
%VW%W%wT%.1h%Z 2024W517T07.7-08 ✔️
%VW%W%wT%h%m%Z 2024W517T0742-08 ✔️
%VW%W%wT%h%,1m%Z 2024W517T0742,9-08 ✔️
%VW%W%wT%h%.1m%Z 2024W517T0742.9-08 ✔️
%VW%W%wT%h%m%s%Z 2024W517T074255-08 ✔️
%VW%W%wT%h%m%.1s%Z 2024W517T074255.8-08 ✔️
%VW%W%wT%h%m%.2s%Z 2024W517T074255.87-08 ✔️
%VW%W%wT%h%m%,3s%Z 2024W517T074255,870-08 ✔️
%VW%W%wT%h%m%.3s%Z 2024W517T074255.870-08 ✔️
%VW%W%wT%h%m%s,%u%Z 2024W517T074255,870479-08 ✔️
%VW%W%wT%h%m%s.%u%Z 2024W517T074255.870479-08 ✔️
%VW%W%wT%h%Z%z 2024W517T07-0800 ✔️
%VW%W%wT%,1h%Z%z 2024W517T07,7-0800 ✔️
%VW%W%wT%.1h%Z%z 2024W517T07.7-0800 ✔️
%VW%W%wT%h%m%Z%z 2024W517T0742-0800 ✔️
%VW%W%wT%h%,1m%Z%z 2024W517T0742,9-0800 ✔️
%VW%W%wT%h%.1m%Z%z 2024W517T0742.9-0800 ✔️
%VW%W%wT%h%m%s%Z%z 2024W517T074255-0800 ✔️
%VW%W%wT%h%m%.1s%Z%z 2024W517T074255.8-0800 ✔️
%VW%W%wT%h%m%.2s%Z%z 2024W517T074255.87-0800 ✔️
%VW%W%wT%h%m%,3s%Z%z 2024W517T074255,870-0800 ✔️
%VW%W%wT%h%m%.3s%Z%z 2024W517T074255.870-0800 ✔️
%VW%W%wT%h%m%s,%u%Z%z 2024W517T074255,870479-0800 ✔️
%VW%W%wT%h%m%s.%u%Z%z 2024W517T074255.870479-0800 ✔️
%Y%OT%h 2024357T07 ✔️
%Y%OT%,1h 2024357T07,7 ✔️
%Y%OT%.1h 2024357T07.7 ✔️
%Y%OT%h%m 2024357T0742 ✔️
%Y%OT%h%,1m 2024357T0742,9 ✔️
%Y%OT%h%.1m 2024357T0742.9 ✔️
%Y%OT%h%m%s 2024357T074255 ✔️
%Y%OT%h%m%.1s 2024357T074255.8 ✔️
%Y%OT%h%m%.2s 2024357T074255.87 ✔️
%Y%OT%h%m%,3s 2024357T074255,870 ✔️
%Y%OT%h%m%.3s 2024357T074255.870 ✔️
%Y%OT%h%m%s,%u 2024357T074255,870479 ✔️
%Y%OT%h%m%s.%u 2024357T074255.870479 ✔️
%Y%OT%hZ 2024357T15Z ✔️
%Y%OT%,1hZ 2024357T15,7Z ✔️
%Y%OT%.1hZ 2024357T15.7Z ✔️
%Y%OT%h%mZ 2024357T1542Z ✔️
%Y%OT%h%,1mZ 2024357T1542,9Z ✔️
%Y%OT%h%.1mZ 2024357T1542.9Z ✔️
%Y%OT%h%m%sZ 2024357T154255Z ✔️
%Y%OT%h%m%.1sZ 2024357T154255.8Z ✔️
%Y%OT%h%m%.2sZ 2024357T154255.87Z ✔️
%Y%OT%h%m%,3sZ 2024357T154255,870Z ✔️
%Y%OT%h%m%.3sZ 2024357T154255.870Z ✔️
%Y%OT%h%m%s,%uZ 2024357T154255,870479Z ✔️
%Y%OT%h%m%s.%uZ 2024357T154255.870479Z ✔️
%Y%OT%h%Z 2024357T07-08 ✔️
%Y%OT%,1h%Z 2024357T07,7-08 ✔️
%Y%OT%.1h%Z 2024357T07.7-08 ✔️
%Y%OT%h%m%Z 2024357T0742-08 ✔️
%Y%OT%h%,1m%Z 2024357T0742,9-08 ✔️
%Y%OT%h%.1m%Z 2024357T0742.9-08 ✔️
%Y%OT%h%m%s%Z 2024357T074255-08 ✔️
%Y%OT%h%m%.1s%Z 2024357T074255.8-08 ✔️
%Y%OT%h%m%.2s%Z 2024357T074255.87-08 ✔️
%Y%OT%h%m%,3s%Z 2024357T074255,870-08 ✔️
%Y%OT%h%m%.3s%Z 2024357T074255.870-08 ✔️
%Y%OT%h%m%s,%u%Z 2024357T074255,870479-08 ✔️
%Y%OT%h%m%s.%u%Z 2024357T074255.870479-08 ✔️
%Y%OT%h%Z%z 2024357T07-0800 ✔️
%Y%OT%,1h%Z%z 2024357T07,7-0800 ✔️
%Y%OT%.1h%Z%z 2024357T07.7-0800 ✔️
%Y%OT%h%m%Z%z 2024357T0742-0800 ✔️
%Y%OT%h%,1m%Z%z 2024357T0742,9-0800 ✔️
%Y%OT%h%.1m%Z%z 2024357T0742.9-0800 ✔️
%Y%OT%h%m%s%Z%z 2024357T074255-0800 ✔️
%Y%OT%h%m%.1s%Z%z 2024357T074255.8-0800 ✔️
%Y%OT%h%m%.2s%Z%z 2024357T074255.87-0800 ✔️
%Y%OT%h%m%,3s%Z%z 2024357T074255,870-0800 ✔️
%Y%OT%h%m%.3s%Z%z 2024357T074255.870-0800 ✔️
%Y%OT%h%m%s,%u%Z%z 2024357T074255,870479-0800 ✔️
%Y%OT%h%m%s.%u%Z%z 2024357T074255.870479-0800 ✔️
%Y-%M-%DT%h:%m:%s+08 2024-12-22T23:42:55+08 ✔️
%Y-%M-%DT%h-12 2024-12-22T03-12 ✔️
%Y-%M-%DT%h-12:00 2024-12-22T03-12:00 ✔️
%Y-%M-%DT%h:%m-12 2024-12-22T03:42-12 ✔️
%Y-%M-%DT%h:%m-12:00 2024-12-22T03:42-12:00 ✔️
%Y-%M-%D %h:%m 2024-12-22 07:42 ✔️
%Y-%M-%D %h:%m:%s 2024-12-22 07:42:55 ✔️
%Y-%M-%D %h:%m:%.1s 2024-12-22 07:42:55.8 ✔️
%Y-%M-%D %h:%m:%.2s 2024-12-22 07:42:55.87 ✔️
%Y-%M-%D %h:%m:%.3s 2024-12-22 07:42:55.870 ✔️
%Y-%M-%D %h:%mZ 2024-12-22 15:42Z ✔️
%Y-%M-%D %h:%m%Z:%z 2024-12-22 07:42-08:00 ✔️
%Y-%M-%DT%h:%m%Z%z 2024-12-22T07:42-0800 ✔️
%Y-%M-%DT%h:%m:%s%Z%z 2024-12-22T07:42:55-0800 ✔️
%Y-%M-%DT%h:%m:%.1s%Z%z 2024-12-22T07:42:55.8-0800 ✔️
%Y-%M-%DT%h:%m:%.2s%Z%z 2024-12-22T07:42:55.87-0800 ✔️
%Y-%M-%DT%h:%m:%.3s%Z%z 2024-12-22T07:42:55.870-0800 ✔️
%Y-%M-%D %h:%m%Z%z 2024-12-22 07:42-0800 ✔️
%Y-%M-%D %h:%m:%s%Z%z 2024-12-22 07:42:55-0800 ✔️
%Y-%M-%D %h:%m:%.1s%Z%z 2024-12-22 07:42:55.8-0800 ✔️
%Y-%M-%D %h:%m:%.2s%Z%z 2024-12-22 07:42:55.87-0800 ✔️
%Y-%M-%D %h:%m:%.3s%Z%z 2024-12-22 07:42:55.870-0800 ✔️
%Y-%M-%DT%h:%m:%s+0845 2024-12-23T00:27:55+0845 ✔️
%Y-%M-%DT%h:%m:%s+0000 2024-12-22T15:42:55+0000 ✔️
%Y-%M-%DT%h:%m:%.3s+0000 2024-12-22T15:42:55.870+0000 ✔️

Duration Periods

NOTE: Assertions for periods haven't been created yet.

Format Example RFC 3339 ISO 8601 HTML
P1Y P1Y ✔️
P1,5Y P1,5Y ✔️
P1.5Y P1.5Y ✔️
P1M P1M ✔️
P1W P1W ✔️
P1D P1D ✔️
PT1H PT1H ✔️ ✔️
P1H P1H ✔️
PT1M PT1M ✔️ ✔️
PT1S PT1S ✔️ ✔️
P1S P1S ✔️
PT1,5S PT1,5S ✔️
PT1.5S PT1.5S ✔️ ✔️
P1Y1M P1Y1M ✔️
P1Y1D P1Y1D ✔️
P1Y1M1D P1Y1M1D ✔️
P1Y1M1DT1H1M1S P1Y1M1DT1H1M1S ✔️
P1DT1H P1DT1H ✔️ ✔️
P1MT1M P1MT1M ✔️
P1DT1M P1DT1M ✔️ ✔️
P1.5W P1.5W ✔️
P1,5W P1,5W ✔️
P1DT1.000S P1DT1.000S ✔️ ✔️
P1DT1.00000S P1DT1.00000S ✔️
P1DT1H1M1.1S P1DT1H1M1.1S ✔️ ✔️
P1H1M1.1S P1H1M1.1S ✔️
1W1M1S 1W1M1S ✔️
1S1M1H1W 1S1M1H1W ✔️
1 W 1 W ✔️
1.5W 1.5W ✔️
1 D 1 W 1 D 1 W ✔️
1.5 S 1.5 M 1.5 S 1.5 M ✔️
1H 15 M 1H 15 M ✔️

Intervals/Ranges

Format Example RFC 3339 ISO 8601 HTML
%Y-%M-%D/P1Y 2024-12-22/P1Y ✔️
%Y-%M-%D/P1M 2024-12-22/P1M ✔️
%Y-%M-%D/P1D 2024-12-22/P1D ✔️
%V-W%W-%w/P1Y 2024-W51-7/P1Y ✔️
%V-W%W-%w/P1M 2024-W51-7/P1M ✔️
%V-W%W-%w/P1D 2024-W51-7/P1D ✔️
%Y-%O/P1Y 2024-357/P1Y ✔️
%Y-%O/P1M 2024-357/P1M ✔️
%Y-%O/P1D 2024-357/P1D ✔️
%Y-%M-%D/%Y-%M-%D 2024-12-22/2024-12-22 ✔️
%Y-%M-%D/%V-W%W-%w 2024-12-22/2024-W51-7
%Y-%M-%D/%Y-%O 2024-12-22/2024-357
%V-W%W-%w/%Y-%M-%D 2024-W51-7/2024-12-22
%V-W%W-%w/%V-W%W-%w 2024-W51-7/2024-W51-7 ✔️
%V-W%W-%w/%Y-%O 2024-W51-7/2024-357
%Y-%O/%Y-%M-%D 2024-357/2024-12-22
%Y-%O/%V-W%W-%w 2024-357/2024-W51-7
%Y-%O/%Y-%O 2024-357/2024-357 ✔️
P1Y/%Y-%M-%D P1Y/2024-12-22 ✔️
P1Y/%V-W%W-%w P1Y/2024-W51-7 ✔️
P1Y/%Y-%O P1Y/2024-357 ✔️
P1M/%Y-%M-%D P1M/2024-12-22 ✔️
P1M/%V-W%W-%w P1M/2024-W51-7 ✔️
P1M/%Y-%O P1M/2024-357 ✔️
P1D/%Y-%M-%D P1D/2024-12-22 ✔️
P1D/%V-W%W-%w P1D/2024-W51-7 ✔️
P1D/%Y-%O P1D/2024-357 ✔️
%Y-%M-%DT%h/P1DT1H 2024-12-22T07/P1DT1H ✔️
%Y-%M-%DT%h:%m/P1DT1H 2024-12-22T07:42/P1DT1H ✔️
%Y-%M-%DT%h:%m:%s/P1DT1H 2024-12-22T07:42:55/P1DT1H ✔️
%Y-%M-%DT%h:%m:%.3s/P1DT1H 2024-12-22T07:42:55.870/P1DT1H ✔️
%Y-%M-%DT%h:%mZ/P1DT1H 2024-12-22T07:42Z/P1DT1H ✔️
%V-W%W-%wT%h/P1DT1H 2024-W51-7T07/P1DT1H ✔️
%V-W%W-%wT%h:%m/P1DT1H 2024-W51-7T07:42/P1DT1H ✔️
%V-W%W-%wT%h:%m:%s/P1DT1H 2024-W51-7T07:42:55/P1DT1H ✔️
%V-W%W-%wT%h:%m:%.3s/P1DT1H 2024-W51-7T07:42:55.870/P1DT1H ✔️
%V-W%W-%wT%h:%mZ/P1DT1H 2024-W51-7T07:42Z/P1DT1H ✔️
%Y-%OT%h/P1DT1H 2024-357T07/P1DT1H ✔️
%Y-%OT%h:%m/P1DT1H 2024-357T07:42/P1DT1H ✔️
%Y-%OT%h:%m:%s/P1DT1H 2024-357T07:42:55/P1DT1H ✔️
%Y-%OT%h:%m:%.3s/P1DT1H 2024-357T07:42:55.870/P1DT1H ✔️
%Y-%OT%h:%mZ/P1DT1H 2024-357T07:42Z/P1DT1H ✔️
P1DT1H/%Y-%M-%DT%h P1DT1H/2024-12-22T07 ✔️
P1DT1H/%Y-%M-%DT%h:%m P1DT1H/2024-12-22T07:42 ✔️
P1DT1H/%Y-%M-%DT%h:%m:%s P1DT1H/2024-12-22T07:42:55 ✔️
P1DT1H/%Y-%M-%DT%h:%m:%.3s P1DT1H/2024-12-22T07:42:55.870 ✔️
P1DT1H/%Y-%M-%DT%h:%mZ P1DT1H/2024-12-22T15:42Z ✔️
P1DT1H/%V-W%W-%wT%h P1DT1H/2024-W51-7T07 ✔️
P1DT1H/%V-W%W-%wT%h:%m P1DT1H/2024-W51-7T07:42 ✔️
P1DT1H/%V-W%W-%wT%h:%m:%s P1DT1H/2024-W51-7T07:42:55 ✔️
P1DT1H/%V-W%W-%wT%h:%m:%.3s P1DT1H/2024-W51-7T07:42:55.870 ✔️
P1DT1H/%V-W%W-%wT%h:%mZ P1DT1H/2024-W51-7T15:42Z ✔️
P1DT1H/%Y-%OT%h P1DT1H/2024-357T07 ✔️
P1DT1H/%Y-%OT%h:%m P1DT1H/2024-357T07:42 ✔️
P1DT1H/%Y-%OT%h:%m:%s P1DT1H/2024-357T07:42:55 ✔️
P1DT1H/%Y-%OT%h:%m:%.3s P1DT1H/2024-357T07:42:55.870 ✔️
P1DT1H/%Y-%OT%h:%mZ P1DT1H/2024-357T15:42Z ✔️

Repeating Intervals

Format Example RFC 3339 ISO 8601 HTML
R/%Y-%M-%D/P1Y R/2024-12-22/P1Y ✔️
R/%V-W%W-%w/P1Y R/2024-W51-7/P1Y ✔️
R/%Y-%O/P1Y R/2024-357/P1Y ✔️
R/%Y-%M-%D/%Y-%M-%D R/2024-12-22/2024-12-22 ✔️
R/%Y-%M-%D/%V-W%W-%w R/2024-12-22/2024-W51-7
R/%Y-%M-%D/%Y-%O R/2024-12-22/2024-357
R/%V-W%W-%w/%Y-%M-%D R/2024-W51-7/2024-12-22
R/%V-W%W-%w/%V-W%W-%w R/2024-W51-7/2024-W51-7 ✔️
R/%V-W%W-%w/%Y-%O R/2024-W51-7/2024-357
R/%Y-%O/%Y-%M-%D R/2024-357/2024-12-22
R/%Y-%O/%V-W%W-%w R/2024-357/2024-W51-7
R/%Y-%O/%Y-%O R/2024-357/2024-357 ✔️
R10/%Y-%M-%D/P1Y R10/2024-12-22/P1Y ✔️
R10/%V-W%W-%w/P1Y R10/2024-W51-7/P1Y ✔️
R10/%Y-%O/P1Y R10/2024-357/P1Y ✔️
R10/%Y-%M-%D/%Y-%M-%D R10/2024-12-22/2024-12-22 ✔️
R10/%Y-%M-%D/%V-W%W-%w R10/2024-12-22/2024-W51-7
R10/%Y-%M-%D/%Y-%O R10/2024-12-22/2024-357
R10/%V-W%W-%w/%Y-%M-%D R10/2024-W51-7/2024-12-22
R10/%V-W%W-%w/%V-W%W-%w R10/2024-W51-7/2024-W51-7 ✔️
R10/%V-W%W-%w/%Y-%O R10/2024-W51-7/2024-357
R10/%Y-%O/%Y-%M-%D R10/2024-357/2024-12-22
R10/%Y-%O/%V-W%W-%w R10/2024-357/2024-W51-7
R10/%Y-%O/%Y-%O R10/2024-357/2024-357 ✔️

Intervals End Date Truncations

Format Example RFC 3339 ISO 8601 HTML
%Y/%Y 2024/2024 ✔️
%Y-%M/%Y-%M 2024-12/2024-12 ✔️
%Y-%M-%D/%Y-%M-%D 2024-12-22/2024-12-23 ✔️
%Y-%M-%D/%M-%D 2024-12-22/12-23 ✔️
%Y-%M-%D/%D 2024-12-22/23 ✔️
%Y-%M/%Y-%M 2024-12/2024-12 ✔️
%Y/%Y 2024/2024 ✔️
%Y-%M-%D/%Y-%M 2024-12-22/2024-12
%Y-%M-%D/%Y 2024-12-22/2024
%Y-%O/%Y-%O 2024-357/2024-358 ✔️
%Y-%O/%O 2024-357/358 ✔️
%Y-%O/%Y 2024-357/2024 ✔️
%Y-W%W/%Y-W%W 2024-W51/2024-W52 ✔️
%Y-W%W-%w/%Y-W%W-%w 2024-W51-7/2024-W52-1 ✔️
%Y-W%W/%W 2024-W51/52 ✔️
%Y-W%W-%w/%W-%w 2024-W51-7/52-1 ✔️
%Y-W%W-%w/%w 2024-W51-7/1 ✔️
%Y-%M-%D %h:%m:%s/%Y-%M-%D %h:%m:%s 2024-12-22 15:42:55/2024-12-23 18:45:32 ✔️
%Y-%M-%D %h:%m:%s/%M-%D %h:%m:%s 2024-12-22 15:42:55/12-23 18:45:32 ✔️
%Y-%M-%D %h:%m:%s/%D %h:%m:%s 2024-12-22 15:42:55/23 18:45:32 ✔️
%Y-%M-%D %h:%m/%Y-%M-%D %h:%m 2024-12-22 15:42/2024-12-23 18:45 ✔️
%Y-%M-%D %h/%Y-%M-%D %h 2024-12-22 15/2024-12-23 18 ✔️

Dependencies

~5MB
~92K SLoC