Ubuntu上的非法模式字符'Y'

Cra*_*ezz 13 java windows-7 simpledateformat ubuntu-10.04 playframework-1.x

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. 视窗: 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. 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)
  3. Windows 7的
  4. Ubuntu 10.04

更新24/05/2012

在我的系统中再次检查后,有3个JRE和我的窗口使用JRE1.7默认.但对于Play我使用JRE1.6设置运行.

Cra*_*ezz 21

我搜索SimpleDateFormat并从oracle 获得doc.

在我的窗口中工作,因为我将默认的JRE设置为1.7,但仍然使用JRE1.6为Play Framework运行.

在此输入图像描述

因此,在Windows上工作,JRE1.7为JRE1.6添加了'Y'模式,Week year没有模式.


Niv*_*vas 14

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
...
Run Code Online (Sandbox Code Playgroud)

我不知道为什么Y会在Windows中工作,但它没有记录.y是正确的.而最安全的.