Конвертировать дату из часового пояса GMT в местный часовой пояс - используя ISO_OFFSET_DATE_TIME - PullRequest
0 голосов
/ 16 октября 2018

У меня есть дата, предположительно в GMT, которую я хочу преобразовать в местный часовой пояс, используя форматирование ISO_OFFSET_DATE_TIME.

По сути, я хочу перейти от:

2018-03-13 03: 00: 00.0

до:

2018-03-13T00: 00: 00-09: 00

Очевидно, это изменится, в зависимости от вашего местногочасовой пояс.

Есть идеи, как мне это сделать?

1 Ответ

0 голосов
/ 16 октября 2018

Вы можете использовать для этого ZonedDateTime.Вам просто нужно прочитать дату как UTC и конвертировать ее по мере необходимости.Вы можете получить что-то вроде этого:

String readPattern = "yyyy-MM-dd HH:mm:ss.S";
DateTimeFormatter readDateTimeFormatter = DateTimeFormatter.ofPattern(readPattern).withZone(ZoneOffset.UTC);
LocalDateTime utcLocalDateTime = LocalDateTime.parse("2018-03-13 03:00:00.0", readDateTimeFormatter);
ZonedDateTime localZonedDateTime = utcLocalDateTime.atOffset(ZoneOffset.UTC).atZoneSameInstant(ZoneId.systemDefault());
String writePattern = "yyyy-MM-dd HH:mm:ssXXX";
DateTimeFormatter writeDateTimeFormatter = DateTimeFormatter.ofPattern(writePattern);
System.out.println(writeDateTimeFormatter.format(localZonedDateTime));

Для получения дополнительной информации см .:

...