Рубрики
Без рубрики

Класс часов Java – java.time.Часы

Класс часов Java, java.время.Часы, Системные часы Java, Фиксированные часы Java, Тиковые часы Java, Системные часы Java по умолчанию, Пример часов Java, Миллисекунды часов Java(), Длительность смещения часов Java, фиксированный момент времени часов Java и идентификатор зоны.

Автор оригинала: Pankaj Kumar.

Класс Java Clock является частью API даты и времени . Класс Java Clock используется для получения текущего экземпляра, даты и времени с указанием часового пояса.

Класс часов Java

  1. Класс Java Clock находится в java.time пакете.
  2. Java Clock-это абстрактный класс , поэтому мы не можем создать его экземпляр. Однако он содержит несколько статических методов для получения своего экземпляра.
  3. Использование класса Java Clock необязательно, поскольку большинство классов API Date имеют метод now () . Его основная цель состоит в том, чтобы по мере необходимости подключать альтернативные часы. Например, в Инъекции зависимостей пружины .

    Лучше всего передавать часы в качестве аргумента в метод, для которого требуется текущий момент времени.

  4. Часы можно использовать вместо System.currentTimeMillis() и Часовой пояс.getDefault() .
  5. Java предоставляет четыре реализации часов – FixedClock , OffsetClock , SystemClock и TickClock . Они являются частью класса Clock, и существуют статические методы, которые возвращают эти реализации Clock.

Методы синхронизации Java

Давайте рассмотрим статические методы класса Clock и их использование.

зона системы по умолчанию()

Метод Clock systemDefaultZone() возвращает экземпляр часов с часовым поясом системы по умолчанию.

Clock clock = Clock.systemDefaultZone();
System.out.println(clock.getZone()); // prints "Asia/Kolkata" for me

мгновенный()

Этот метод возвращает текущий момент времени часов.

Instant instant = clock.instant();
System.out.println(instant); //prints "2018-05-08T17:51:09.102302Z"

систематический()

Этот метод возвращает экземпляр часов с часовым поясом UTC.

clock = Clock.systemUTC();
System.out.println(clock.getZone()); //prints "Z"

система(зона ZoneId)

Этот метод используется для получения экземпляра часов с указанным часовым поясом.

Clock clock = Clock.system(ZoneId.of("Europe/Paris"));
System.out.println(clock.instant()); // prints "2018-05-08T17:51:09.116133Z"

миллис()

Этот метод возвращает текущие миллисекунды экземпляра. Это эквивалентно System.currentTimeMillis() .

System.out.println(clock.millis()); //prints 1525801869116
System.out.println(System.currentTimeMillis()); // prints 1525801869116

смещение(Тактовые базовые часы, Длительность смещения Длительности)

Этот метод используется для получения часов с экземпляром, добавленным к заданным базовым часам. Мы можем использовать его для моделирования тестирования в будущем и прошлом.

Clock pastClock = Clock.offset(clock, Duration.ofMillis(-10000));
System.out.println(clock.millis() - pastClock.millis()); //prints 10000

Clock futureClock = Clock.offset(clock, Duration.ofDays(1));
System.out.println(futureClock.millis() - clock.millis()); //prints 86400000

тик(Базовые часы, Длительность тикания)

Этот метод возвращает часы, которые возвращают моменты из указанных базовых часов, усеченные до ближайшего вхождения указанной продолжительности. Давайте посмотрим, как это используется с примером фрагмента кода.

Clock nearestHourClock = Clock.tick(clock, Duration.ofHours(1));
System.out.println(clock.instant());
System.out.println(nearestHourClock.instant());
		
Clock nearestSecondClock = Clock.tickSeconds(ZoneId.systemDefault());
System.out.println(nearestSecondClock);
System.out.println(nearestSecondClock.instant());

Вывод приведенного выше фрагмента кода:

2018-05-08T17:51:09.116566Z
2018-05-08T17:00:00Z
TickClock[SystemClock[Asia/Kolkata],PT1S]
2018-05-08T17:51:09Z

Обратите внимание на использование экземпляров Tick Clock и Системные часы .

исправлено(Мгновенное фиксированное мгновение, зона ZoneId)

Этот метод возвращает часы, которые всегда возвращают одно и то же мгновение.

Clock fixedClock = Clock.fixed(instant, ZoneId.systemDefault());
System.out.println(fixedClock);
System.out.println(fixedClock.instant());
Thread.sleep(1000);
System.out.println(fixedClock.instant());

Выход:

FixedClock[2018-05-08T17:51:09.102302Z,Asia/Kolkata]
2018-05-08T17:51:09.102302Z
2018-05-08T17:51:09.102302Z

Это все для использования класса Java Clock с примерами.

Ссылка: API Doc