Извлечь часовой пояс из йодатима DateTime - PullRequest
0 голосов
/ 06 июня 2018

Я получаю строку даты и времени, содержащую дату и время ISO8601, например, "2001-07-04T12:08:56.235-07:00", затем эту строку анализируется для объекта даты и времени jodatime таким образом new DateTime("2001-07-04T12:08:56.235-07:00"), и после этого она снова преобразуется в строку с использованием шаблона переменной форматированияпередается аргументами, но когда это происходит, часовой пояс не используется, поэтому используется системный часовой пояс по умолчанию.Я хочу извлечь часовой пояс (или смещение) из первой заданной даты и использовать его для соответствующей печати.Возможно ли это?

Заранее спасибо!

1 Ответ

0 голосов
/ 06 июня 2018

Не используйте new DateTime("...").Используйте DateTime.parse("...").

См. Разницу:

DateTime dateTime1 = new DateTime("2001-07-04T12:08:56.235-07:00");
System.out.println(dateTime1);
System.out.println(dateTime1.getZone());

DateTime dateTime2 = DateTime.parse("2001-07-04T12:08:56.235-07:00");
System.out.println(dateTime2);
System.out.println(dateTime2.getZone());

Выход (я в восточной части США)

2001-07-04T15:08:56.235-04:00
America/New_York
2001-07-04T12:08:56.235-07:00
-07:00

Как вы можетесм., использование new преобразует часовой пояс по умолчанию, в то время как использование parse сохраняет данный часовой пояс.

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