Недопустимый символ шаблона '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.
Ответы
Ответ 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
является правильным. И самый безопасный.