2012-05-31 3 views
2

Код:DateTimeFormat.parse() отказ

DateTimeFormat dateFormat = DateTimeFormat 
      .getFormat("EEE MMM dd HH:mm:ss zzz yyyy"); 

    Date date = dateFormat.parse("Wed May 30 18:33:22 PDT 2012"); 

Результат:

Uncaught java.lang.IllegalArgumentException: Wed May 30 18:33:22 PDT 2012 

Почему?

Я проверил и удвоил свой рисунок против the docs. Включение шаблона в SimpleDateFormat tester дает ожидаемые результаты, хотя это, очевидно, не является убедительным тестом.

ответ

4

Разбора даты имеет ограниченную поддержку в соответствии с docs вы упомянули: поддержка

часового пояса разбора ограничена. Поддерживаются только стандартный формат GMT и RFC. Спецификация часового пояса с использованием идентификатора часового пояса (например, America/Los_Angeles), названия часовых поясов (например, PST, тихоокеанское стандартное время) не поддерживаются.

Более конкретно

В текущей реализации, часовой пояс разбор поддерживает только GMT: ччммы, GMT: + HHMM, и GMT: -hhmm.

Итак, следующий код работает отлично:

DateTimeFormat dateFormat = DateTimeFormat 
      .getFormat("EEE MMM dd HH:mm:ss zzz yyyy"); 
    Date date = dateFormat.parse("Thu May 31 09:45:21 GMT-07:00 2012"); 
    GWT.log("Date "+date); 
Смежные вопросы