Недопустимый символ шаблона «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»?

Примечание:

  1. Играть-1.2.3
  2. JRE:
    1. 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)
    2. Убунту: 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)
  3. Windows 7
  4. Убунту 10.04

Обновление от 24 мая 2012 г.

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


person Crazenezz    schedule 14.05.2012    source источник
comment
Потому что реализация Ubuntu соответствует документации API? Не копаясь в источнике, это может быть просто мнением, но кто-то может знать больше.   -  person Dave Newton    schedule 14.05.2012


Ответы (2)


Я ищу SimpleDateFormat и получил doc от оракул.

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

введите здесь описание изображения

Из-за этого работает в Windows, в JRE1.7 добавлен шаблон «Y» для Week year, а в JRE1.6 для этого шаблона нет.

person Crazenezz    schedule 24.05.2012

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

Согласно документам:

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 правильный. И самый безопасный.

person Nivas    schedule 14.05.2012
comment
Может быть, это из-за другой JRE, которую я использую? Для Windows я использую JRE от Oracle, но не уверен, что мой Ubuntu использует ту же JRE, потому что другой человек устанавливает для меня. - person Crazenezz; 14.05.2012
comment
@Crazenezz - беги java -version - person Stephen C; 14.05.2012
comment
@StephenC: Спасибо, добавьте примечание относительно JRE. - person Crazenezz; 14.05.2012