У меня дата ISO 8601, скажем: 2012-01-19T19:00-05:00
Часовой пояс моей машины GMT+1
Я пытаюсь использовать joda, чтобы проанализировать это и преобразовать его в соответствующую дату и время по Гринвичу:
DateTimeFormatter simpleDateISOFormat = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mmZZ");
creationDate = simpleDateISOFormat.withZone(DateTimeZone.UTC)
.parseDateTime(date + "T" + time)
.toDate();
Теперь ожидаемый результат Fri Jan 20 00:00:00 CET 2012
Вместо этого я получаю: Fri Jan 20 01:00:00 CET 2012
Я считаю, что это потому, что я нахожусь в часовом поясе GMT + 1
.
Есть ли способ разобрать фиктивную дату, чтобы быть в другом часовом поясе?
Редактировать: В основном проблема в том, что я вызываю метод toDate()
. Метод преобразует DateTime
в Date
, как мне нужно, но я преобразую его по местному времени.
Кто-нибудь знает метод преобразования, который не налагает это ограничение?