13

Uso este patrón SimpleDateFormat format = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"); en Windows y funciona, pero cuando pruebo Ubuntu 10.04 muestra una excepción play.exceptions.JavaExecutionException: Illegal pattern character 'Y'.Carácter ilegal del patrón 'Y' en Ubuntu

busco la solución para esto y he encontrado que el patrón del año debe cambiarse a minúsculas: SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); y funciona.

¿Alguien puede decirme la razón de por qué en Windows funciona pero en Ubuntu no funcionó si uso 'Y' en vez de 'y'?

Nota:

  1. Juego-1.2.3
  2. JRE:
    1. de 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. 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

actualización 24/05/2012

Después de comprobar de nuevo en mi sistema, hay 3 JRE y mis ventanas utilizando JRE1.7 por defecto. Pero para Play, establecí la ejecución usando JRE1.6.

+4

¿Porque la implementación de Ubuntu sigue la documentación de la API? Sin profundizar en la fuente, esto puede ser solo una respuesta de opinión, pero alguien más puede saber más. –

Respuesta

21

Busco SimpleDateFormat y obtuve el doc de oráculo.

Funciona en mis ventanas porque configuré el JRE predeterminado en 1.7 pero todavía se está ejecutando usando JRE1.6 para Play Framework.

enter image description here

funciona en Windows debido a esto, JRE1.7 ha añadido patrón de 'Y' para Week year y en JRE1.6 no existe un patrón para esto.

14

Y no es un patrón válido. y es.

Según el 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 
... 

No sé qué Y iba a funcionar en Windows, pero no está documentado. y es el correcto. Y lo más seguro

+0

¿Es tal vez porque los diferentes JRE que uso? Para Windows estoy usando JRE de Oracle pero no estoy seguro de si mi Ubuntu usa el mismo JRE, porque otra persona está instalando para mí. – Crazenezz

+1

@Crazenezz - ejecuta 'java -version' –

+0

@StephenC: Gracias, agrega una nota sobre el JRE – Crazenezz

Cuestiones relacionadas