Подтвердить что ты не робот

Недопустимый символ шаблона 'Y' на Ubuntu

Я использую этот шаблон SimpleDateFormat format = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"); в Windows, и он работает, но при попытке Ubuntu 10.04 он показывает исключение play.exceptions.JavaExecutionException: Illegal pattern character 'Y'.

Я ищу решение для этого и нашел, что шаблон года должен быть изменен на нижний регистр: SimpleDateFormat format = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"); и он работает.

Может ли кто-нибудь сказать мне причину этого, почему в Windows работает, но в Ubuntu не работает, если я использую "Y" вместо "y"?

Примечание:

  • Play-1.2.3
  • JRE:
    • Windows: java version "1.7.0_03" Java(TM) SE Runtime Environment (build 1.7.0_03-b05) Java HotSpot(TM) Client VM (build 22.1-b02, mixed mode, sharing)
    • Ubuntu: java version "1.6.0_31" Java(TM) SE Runtime Environment (build 1.6.0_31-b04) Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)
  • Windows 7
  • Ubuntu 10.04

Обновление 24/05/2012

После того, как я снова проведу проверку в своей системе, есть 3 JRE и мои окна с использованием JRE1.7 по умолчанию. Но для Play я установил работу с использованием JRE1.6.

4b9b3361

Ответ 1

Я ищу SimpleDateFormat и получил doc от oracle.

Работает в моих окнах, потому что я установил JRE по умолчанию на 1.7, но все еще работает с использованием JRE1.6 для платформы воспроизведения.

enter image description here

Работы в Windows из-за этого, JRE1.7 добавил шаблон "Y" для Week year, а в JRE1.6 для этого нет шаблона.

Ответ 2

Y не является допустимым шаблоном. Y есть.

В соответствии с docs:

Letter   Date or Time Component     Presentation    Examples
G        Era designator             Text            AD
y        Year                       Year            1996; 96
M        Month in year              Month           July; Jul; 07
w        Week in year               Number          27
...

Я не знаю, почему Y будет работать в Windows, но он не документирован. Y является правильным. И самый безопасный.