Java время: сохранить дату и время в другом часовом поясе - PullRequest
2 голосов
/ 02 апреля 2019

Можно ли получить ту же дату и время в другом часовом поясе?

Я имею в виду, в настоящее время я получаю зулу-дату-время из базы данных. Это:

2019-04-02T00: 00: 00Z

Мне нужно сохранить часть даты и времени в другом часовом поясе (ZoneId.systemDefault()). Я хотел бы получить:

2019-04-02T00: 00: 00 + 02: 00 [Европа / Мадрид]

Может ли это получить?

1 Ответ

4 голосов
/ 02 апреля 2019

Конечно, это возможно, и довольно просто сделать.

final String dateStr = "2019-04-02T00:00:00Z";
final ZonedDateTime date = ZonedDateTime.parse(dateStr);
final ZonedDateTime zonedDateTime = date.withZoneSameLocal(ZoneId.systemDefault());

Вывод:

date:          2019-04-02T00:00Z
zonedDateTime: 2019-04-02T00:00+02:00[Europe/Rome]

withZoneSameLocal творит магию

Возвращает копию этой даты-времени с другим часовым поясом, сохраняя местную дату-время, если это возможно.

...