Описание тега java-time

Пакет java.time - это современная структура даты и времени, которая дебютировала в Java 8, определенная JSR 310, вытеснив классы java.util.Date и.Calendar. Вдохновленный Joda-Time, но с новой архитектурой. Он использует стандарт ISO 8601 по умолчанию для синтаксического анализа и генерации строк и включает классы для представления значений только даты, времени дня и промежутка времени.

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: