Как получить DayOfWeek из Instant.now () - PullRequest
0 голосов
/ 29 мая 2019

Предполагая следующий код ...

Instant x = Instant.now();

Как получить день недели от x?

Ответы [ 3 ]

4 голосов
/ 29 мая 2019

Вы должны преобразовать его в ZonedDateTime

Instant.now().atZone(ZoneId.systemDefault()).getDayOfWeek()
1 голос
/ 29 мая 2019

Я присудил очки техтабу, но вместо этого я использовал atOffset. Вот где я оказался ...

int currentDayOfWeekValue = Instant.now().atOffset(ZoneOffset.UTC).getDayOfWeek().getValue();

Я поражен, насколько сложны библиотеки даты и времени Java8. Существует множество вариаций схожих понятий ...

  • Мгновенный
  • LocalDate
  • LocalTime
  • LocalDateTime
  • OffsetDateTime
  • ZoneOffset
  • ZonedDateTime

Риторические вопросы:

Зулу и UTC одинаковы или различны?

Какой часовой пояс связан с Instant.now () - результаты показывают, что Zulu?

Почему я не могу манипулировать объектом Instant, таким как LocalDateTime - методы похожи, но различны?

Чем отличаются ZonedDateTime и OffsetDateTime - похоже, они относятся к одной и той же концепции.

0 голосов
/ 29 мая 2019
Calendar.getInstance().get(Calendar.DAY_OF_WEEK); 

даст вам тот же результат

...