Java má metodu Duration.parse("duration-string")
, která vypadá, jako by pracovala s ISO duration, ale není tomu tak. Dokáže parsovat použe tyto suffixy D (day), H (hour), M (minute), S (second).
Takže toto je správně:
Duration.parse("P1D") // jeden den
ale toto je chybně
Duration.parse("P1M") // správně by to bylo "PT1M" ale neznamená to 1 měsíc, ale 1 minutu.
Duration
„PT21.345S“ — parses as „21.345 seconds“
„PT11M“ — parses as „11 minutes“ (where a minute is 60 seconds)
„PT11H“ — parses as „11 hours“ (where an hour is 3600 seconds)
„P3D“ — parses as „3 days“ (where a day is 24 hours or 86400 seconds)
„P3DT3H4M“ — parses as „3 days, 3 hours and 4 minutes“
„P-7H3M“ — parses as „-7 hours and +3 minutes“
„-P7H3M“ — parses as „-7 hours and -3 minutes“
„-P-7H+3M“ — parses as „+7 hours and -3 minutes“
The suffixes in ASCII of „D“, „H“, „M“ and „S“ mark days, hours, minutes and seconds, accepted in upper or lower case.
www.java2s.com/Tutorials/Java/java.time/Duration/2660__Duration.parse_CharSequence_text_.htm
Pokud potřebujete čas, který je v dnech, týdnech, … musíte použít Period
„P2Y“ — Period.ofYears(2)
„P3M“ — Period.ofMonths(3)
„P4W“ — Period.ofWeeks(4)
„P5D“ — Period.ofDays(5)
„P2Y2M3D“ — Period.of(2, 2, 3)
„P2Y2M3W4D“ — Period.of(2, 2, 25)
„P-2Y2M“ — Period.of(-2, 2, 0)
„-P2Y2M“ — Period.of(-2, -2, 0)
www.java2s.com/Tutorials/Java/java.time/Period/2520__Period.parse_CharSequence_text_.htm