Wie kann ich die Einstellung von Datum und Zeit Formatierung, die in Java Respekt des Benutzers OS-Einstellungen

Ich bin mit meinem Java-app auf einem Windows 7-Maschine, wo meine regionalen Einstellungen eingerichtet sind, formatieren von Daten als YYYY-mm-dd und die Zeit als HH:mm:ss (z.B. "2011-06-20 07:50:28"). Aber wenn ich DateFormat.getDateTimeInstance().format formatieren von Datum sehe ich nicht, sondern ich bekomme "20-Jun-2011 7:50:28 UHR". Was muss ich tun, um das formatieren von Daten in der Weise, dass meine Kunden haben Ihre OS-setup, um Daten anzuzeigen?

Hier ist, was mein code in Frage, der wie folgt aussieht:

File selGameLastTurnFile = selectedGame.getLastTurn ().getTurnFile ();
Date selGameModifiedDate = new Date (selGameLastTurnFile.lastModified());
if (selectedGame.isYourTurn ())  {
    gameInfo = Messages.getFormattedString ("WhoseTurnIsIt.Prompt.PlayTurn",  //$NON-NLS-1$
            FileHelper.getFileName (selGameLastTurnFile), 
            DateFormat.getDateTimeInstance().format(selGameModifiedDate));
}  else  {
    gameInfo = Messages.getFormattedString ("WhoseTurnIsIt.Prompt.SentTurn",  //$NON-NLS-1$
            selGameLastTurnFile.getName (), 
            DateFormat.getDateTimeInstance().format(selGameModifiedDate));
}

Den Messages.getFormattedString Anrufe werden mit MessageFormat setzen Sie das Datum in einem Satz, der wie folgt Aussehen wird:

Spielen die turn 'QB Nat vs Ian 008' (erhalten 20-Jun-2011 7:50:28 AM)

Aber mein OS-Einstellungen sind setup, um das Datum zu formatieren, wie ich oben beschrieben habe, und ich erwartete zu sehen:

Spielen die turn 'QB Nat vs Ian 008' (empfangen 2011-06-20 07:50:28)

Suchte ich hier und in anderen Java-Programmierung von Websites und konnte keine Antwort finden, aber dies scheint wie eine offensichtliche Sache zu tun will, ich fühle mich wie ich bin etwas fehlt offensichtlich.

  • Zur Klärung, ich bin versucht, um Datum und Uhrzeit-Formatierung wie angegeben von meinen Kunden' - OS-Einstellungen. Viele Menschen, mich eingeschlossen, optimieren Sie Ihr Datum, Zeit und Währung die Einstellungen von der Gebietsschema-Standardeinstellungen. Ich will nicht immer nur das bekommen, was jemand bei Oracle Dinge ist die Art, wie Daten formatiert werden sollen für ein bestimmtes Gebietsschema möchte ich das formatieren, dass meine Kunden auf Ihre OS. Ich hoffe, dass macht meine Anfrage klarer.
  • Es ist wirklich ärgerlich, dass meine C-implementation kann es tun, aber nicht Java. strftime("%c") mit locale "" funktioniert perfekt.
  • Während der Verwendung der DateFormat Klasse, wenn diese Frage wurde vor 8 Jahren vernünftig war,, die Klasse ist notorisch lästig und jetzt ist längst überholt. Heute müssen Sie stattdessen DateTimeFormatter von java.Zeit, die moderne Java-Datums-und Zeit-API.
InformationsquelleAutor Ian Leslie | 2011-07-15
Schreibe einen Kommentar