Hugos ISO-8601, "T" -. java.time, Threeten-Extra ( PeriodDuration v1.2). :
ISO-8601 .
"P8W". java.time Threeten-Extra "P56D", . . java.time.Duration , . . :
System.out.println(Duration.parse("PT4200S"));
, : , , .
:
- ISO-8601 ( 4.4.4.2) "" ( ),
java.time , Period Duration ( ). - , , , ISO-8601: "PnnYnnMnnDTnnHnnMnnS" "PnnW".
- ISO-8601 (. 3.4.2: "n", ),
java.time . , XML- , ( "P" ), , . - , : "PYYYYMMDDThmmss" . "PYYYY--DDThh: : ".
- : ISO-8601 ( ),
java.time.Duration .
, :
ISO-8601 java.time ( Threeten-Extra, Period java.time.Duration ).
ISO-8601:
, java.time, Time4J, ISO-8601. . API net.time4j.Duration. java.time:
Duration<CalendarUnit> d1 = Duration.parseCalendarPeriod("P8W");
System.out.println(d1);
System.out.println(d1.getPartialAmount(CalendarUnit.WEEKS));
System.out.println(Duration.Formatter.ofPattern(CalendarUnit.class, "W' weeks'").format(d1));
System.out.println(PrettyTime.of(Locale.GERMAN).print(d1));
LocalDate ld = LocalDate.of(2017, 9, 17);
System.out.println(PlainDate.from(ld).plus(d1));
System.out.println(PlainDate.of(2017, 9, 17).plus(d1));
Duration<IsoUnit> d2 = Duration.parsePeriod("P2DT5H10M");
LocalDateTime ldt = LocalDateTime.of(2017, 9, 17, 19, 15);
System.out.println(PlainTimestamp.from(ldt).plus(d2));
System.out.println(PlainTimestamp.of(2017, 9, 17, 19, 15).plus(d2));
System.out.println(PrettyTime.of(Locale.GERMAN).print(d2));
Duration<IsoUnit> d3 = Duration.parsePeriod("P0001-01-02T05:10:04");
System.out.println(d3);
LocalDateTime ldt = LocalDateTime.of(2017, 9, 17, 19, 15);
System.out.println(PlainTimestamp.from(ldt).plus(d3));
: 86 .