13

Ich benutze dieses Muster SimpleDateFormat format = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"); in Windows und es funktioniert, aber wenn Ubuntu 10.04 versuchen es eine Ausnahme play.exceptions.JavaExecutionException: Illegal pattern character 'Y' zeigen.Illegale Musterzeichen 'Y' auf Ubuntu

Ich Suche nach Lösung für diese und fand das Jahr Muster muss in Kleinbuchstaben geändert werden: SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); und es funktioniert.

Kann mir jemand den Grund dafür, warum in Windows funktioniert, aber in Ubuntu funktioniert nicht, wenn ich 'Y' anstelle von 'y' verwenden?

Hinweis:

  1. Wiedergabe-1.2.3
  2. JRE:
    1. Fenster: 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

-Update 24.05.2012

Nachdem ich überprüfen wieder in meinem System gibt es 3 JRE und meine Fenster für Standard mit JRE1.7. Aber für Play habe ich mit JRE1.6 gestartet.

+4

Weil die Ubuntu-Implementierung der API-Dokumentation folgt? Ohne in die Quelle einzudringen, kann dies nur eine Antwort sein, aber jemand anders weiß vielleicht mehr. –

Antwort

21

Ich suche nach SimpleDateFormat und habe die doc von Oracle.

Funktioniert in meinem Windows, weil ich die Standard-JRE auf 1.7 festgelegt habe, aber weiterhin mit JRE1.6 für das Play Framework ausgeführt wird.

enter image description here

Works unter Windows aus diesem Grund hat JRE1.7 Muster 'Y' hinzugefügt für Week year und in jre1.6 gibt es kein Muster für diese.

14

Y ist kein gültiges Muster. y ist.

Gemäß der 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 
... 

Ich weiß nicht, warum Y in Windows funktionieren würde, aber es ist nicht dokumentiert. y ist die richtige. Und das Sicherste.

+0

Ist es vielleicht, weil die verschiedenen JRE, die ich verwende? Für Windows verwende ich JRE von Oracle, bin aber nicht sicher, ob mein Ubuntu dieselbe JRE verwendet, weil eine andere Person für mich installiert hat. – Crazenezz

+1

@Crazenezz - run 'java -version' –

+0

@StephenC: Danke, füge ein paar Anmerkungen zur JRE hinzu – Crazenezz