Ubuntu 上的非法模式字符“Y”

我在窗口中使用此模式并且可以工作,但是当在Ubuntu 10.04上尝试时,它会显示异常 。SimpleDateFormat format = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");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. 视窗 7
  4. 乌班图 10.04

更新 24/05/2012

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


答案 1

我搜索SimpleDateFormat并从oracle获得了文档

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

enter image description here

因此,JRE1.7在Windows上工作,因此添加了“Y”模式,而在JRE1.6中没有这种模式。Week year


答案 2

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
...

我不知道为什么可以在Windows中工作,但它没有记录。 是正确的。而且是最安全的。Yy


推荐