Описание тега java-time
Instant
Числовая метка времени, хранящаяся с наносекундным разрешением. Полезно для захвата момента времени, аналогичноSystem.currentTimeMillis()
. Instant - это ближайший эквивалентный класс кjava.util.Date
. Момент при печати выглядит как2000-12-01T12:30:00.000Z
.
LocalDate
Дата без времени, смещения или часового пояса. Полезно, например, для хранения дня рождения. Дата при печати выглядит как2000-12-01
.
LocalTime
Время без даты, смещения или часового пояса. Полезно, например, для хранения часов работы магазина. Время при печати выглядит как12:30:00.000
.
LocalDateTime
Дата и время без смещения или часового пояса. Дата и время при печати выглядят как2000-12-01T12:30:00.000
.
ZonedDateTime
Дата и время со смещением и часовым поясом. Полезно для выполнения расчетов с учетом часового пояса, напримерAmerica/New_York
. ZonedDateTime
является ближайшим эквивалентным классом java.util.GregorianCalendar. Дата и время при печати выглядят как2000-12-01T12:30:00.000-05:00[America/New_York]
По возможности рекомендуется использовать более простые классы без часового пояса для моделирования домена, например LocalDate
, LocalTime
а также LocalDateTime
. Широкое использование часовых поясов приводит к значительному усложнению приложения. Многие приложения могут использовать более простые классы с добавлением часового пояса только на уровне пользовательского интерфейса. Другие известные классы в Java Time API:
Clock
Часы, обеспечивающие доступ к текущему моменту, дате и времени с использованием часового пояса. Часы можно использовать вместоSystem.currentTimeMillis()
а также TimeZone.getDefault()
. Хотя все классы ключевой даты и времени имеютnow()
factory, который использует системные часы, основная цель этой абстракции - позволить вводить альтернативные часы, что может значительно упростить тестирование.
Duration
Продолжительность между двумя моментами на шкале времени, хранящаяся с наносекундным разрешением. Этот класс моделирует продолжительность времени и не привязан ни к какому моменту. Модель является направленной, что означает, что продолжительность может быть отрицательной. Продолжительность при печати выглядит какPT3600S
.
Period
Период времени, выраженный в значимых для человека единицах, например "1 год, 2 месяца и 3 дня". Модель направлена, что означает, что отдельные части периода могут быть отрицательными. Период при печати выглядит какP1Y2M3D
.
ZoneId
Идентификатор часового пояса, например America/New_York
.
ZoneOffset
Смещение часового пояса от Гринвича /UTC, например +02:00.
Документация
Джода-Тайм
Для аналогичного использования до Java 8 см. Библиотеку Joda-Time: