При анализе основных компонентов дат и времени выделяются четыре основных элемента:
- дата
- время
- смещение (часы плюс / минус от Гринвича)
- часовой пояс
Эти естественно образуют семь классов:
- LocalDate - только дата
- LocalTime - только время
- LocalDateTime - дата + время
- OffsetDate - дата + смещение
- OffsetTime - время + смещение
- OffsetDateTime - дата + время + смещение
- ZonedDateTime - дата + время + смещение + зона
(часовой пояс можно использовать, только если вы знаете дату и время, поэтому класс ZonedDate или ZonedTime отсутствует)
Первые шесть форм напрямую соответствуют определениям XML-схемы , что фактически оправдывает их существование. В терминах дизайна приложения я подозреваю, что OffsetDate
будет наименее используемым из семи классов.
Обновление: 2013-01-24: OffsetDate не будет в JDK 1.8.