The Answer Pascal Thivent i the Answer Jon Skeet są zarówno prawidłowe i dobre . Oto trochę dodatkowych informacji.
pięć sekund = PT5S
(ISO 8601)
Innym sposobem wyrażania idei „pięć sekund później” jest ciągiem przy użyciu standardowych formatów zdefiniowanych przez ISO 8601. Model duration/period format ma ten wzór PnYnMnDTnHnMnS
, gdzie P
oznacza początek, a T
oddziela część daty od części czasu.
Tak więc pięć sekund to PT5S
.
Joda-Time
Joda-Time 2,8 biblioteka może zarówno generować i analizować takie ciągi czas/okres. Zobacz klasy Period
, Duration
i Interval
. Możesz dodawać i odejmować obiekty Period do/z obiektów DateTime
.
Wyszukiwanie StackOverflow dla wielu przykładów i dyskusji. Oto jeden szybki przykład.
DateTimeZone zone = DateTimeZone.forID("America/Montreal");
DateTime now = DateTime.now(zone);
DateTime then = now.plusSeconds(5);
Interval interval = new Interval(now, then);
Period period = interval.toPeriod();
DateTime thenAgain = now.plus(period);
Zrzut na konsolę.
System.out.println("zone: " + zone);
System.out.println("From now: " + now + " to then: " + then);
System.out.println("interval: " + interval);
System.out.println("period: " + period);
System.out.println("thenAgain: " + thenAgain);
Po uruchomieniu.
zone: America/Montreal
From now: 2015-06-15T19:38:21.242-04:00 to then: 2015-06-15T19:38:26.242-04:00
interval: 2015-06-15T19:38:21.242-04:00/2015-06-15T19:38:26.242-04:00
period: PT5S
thenAgain: 2015-06-15T19:38:26.242-04:00
Czy prawie całkowicie przestarzałe oznacza, że się zepsuje, jeśli klienci zaktualizują maszynę JVM? Holy crap ... to może być naprawdę złe. Dlaczego mieliby zabić Date ?! – Karl
Bardzo, bardzo rzadko są to przestarzałe rzeczy naprawdę usunięte z JRE i zwykle są wykonywane tylko wtedy, gdy funkcjonalność jest aktywnie szkodliwa. Myślę, że nie ma niebezpieczeństwa, że Date zostanie usunięta w następnych kilku głównych wydaniach. Jest przestarzałe, ponieważ ma poważne wady, ale pozostanie w pobliżu. –
@Karl Nie mam nic do dodania do odpowiedzi Joachima. –