Получить CET зимнее время в Java - PullRequest
1 голос
/ 08 января 2020

У меня есть следующий код для печати времени в ISO8601:

LocalDateTime now = LocalDateTime.now();
ZoneId zone = ZoneId.of("CET");
ZoneOffset zoneOffSet = zone.getRules().getOffset(now);

System.out.println(ZonedDateTime.now(zoneOffSet).format(DateTimeFormatter.ISO_INSTANT));

Однако, это всегда печатает летнее время (UTC + 1), а не UTC + 2, когда мы находимся зимой. Как я могу изменить это, чтобы напечатать время в зависимости от сезона?

Ответы [ 2 ]

3 голосов
/ 08 января 2020

Я думаю, что вы ошибаетесь?

CET  = Central European Time         = UTC + 1  = Winter time
CEST = Central European Summer Time  = UTC + 2  = Summer Time 

Кроме того, из этого замечательного ответа: { ссылка }

Здесь ключ к пониманию того, что часовой пояс идентификатор и " короткое имя " этого идентификатора представляют собой два разных элемента . Идентификатор всегда фиксируется как «CET», но имя меняется между «CET» и «CEST».

0 голосов
/ 08 января 2020

CET стандартное время UTC + 1

Это UTC + 2, когда летнее время (лето)

Так что вы получите UTC + 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...