Joda анализирует дату ISO8601 в часовом поясе GMT ​​

У меня есть дата в формате 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(); 

Теперь ожидаемый результат будет Пт 20 января 00 г .: 00:00 CET 2012

Вместо этого я получаю: Пт 20 января 01:00:00 CET 2012

Я считаю, что это потому, что я нахожусь в часовом поясе GMT + 1 .

Есть ли способ определить, что дата находится в другом часовом поясе?

Изменить: в основном проблема возникает, когда я вызываю метод toDate () . Этот метод преобразует DateTime в Date , как мне нужно, но я преобразую его в местное время.

Кто-нибудь знает метод преобразования, который не накладывает этого ограничения?

16
задан skaffman 31 January 2012 в 11:03
поделиться