ОБНОВЛЕНИЕ: См. мой новый ответ с использованием java.time классов. Я оставляю этот Ответ нетронутым как история.
Ответ Паскаля Тивента и Ответ Джона Скита верны и хороши. Вот немного дополнительной информации.
Пять секунд = PT5S
(ISO 8601)
Еще один способ выразить идею «пять секунд спустя» - использовать строку, используя стандартные форматы, определенные ISO 8601 . формат продолжительности / периода имеет этот шаблон PnYnMnDTnHnMnS
, где P
отмечает начало, а T
отделяет часть даты от части времени.
Итак, пять секунд - это PT5S
.
Joda-Time
Библиотека Joda-Time 2.8 может генерировать и анализировать такие строки длительности / периода. См. Классы Period
, Duration
и Interval
. Вы можете добавлять и вычитать объекты Period в / из DateTime
объектов.
Поиск StackOverflow для многих примеров и обсуждений. Вот один быстрый пример.
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 );
Дамп на консоль.
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 );
При запуске.
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