Wie erhalte ich das Standardformat für Datum und Uhrzeit?

Kann mir jemand sagen, wie ich das Standardformat für Datum und Uhrzeit (String) für das angegebene Gebietsschema (oder das Standardgebietsschema) ermitteln kann?

Was ich bereits gefunden habe (Kann für jemand anderen nützlich sein):

So erhalten Sie das Standardgebietsschema.

<code>Locale currentLocale= Locale.getDefault();
System.out.print(currentLocale.toString());

Result is "en_US"
</code>

So erhalten Sie ein Dezimaltrennzeichen.

<code>DecimalFormatSymbols decimalFormatSymbols =
                                     new DecimalFormatSymbols(currentLocale);
System.out.print(decimalFormatSymbols.getDecimalSeparator());

Result is "."
</code>

So erhalten Sie das Standardformat für Datum und Uhrzeit (String);

<code>(do something)
System.out.print(something);
And got at output something like this: "dd/mm/yyyy" or "hh:mm:ss".. 
                             or other values for specified locale.
</code>

Danke vielmals.

UPD: Gefundene Lösung:

<code>SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
String dateLocalizedFormatPattern = simpleDateFormat.toLocalizedPattern();

The result of System.out.print(dateLocalizedFormatPattern) 
                                             on my device is "M/d/yy h:mm a".
</code>
 Khan12. Mai 2012, 08:28
Überprüfen Sie meine Antwort aufstackoverflow.com/questions/10204291/…

Antworten auf die Frage(2)

Lösung für das Problem

Aktualisieren

Wie Russian Bear in seiner Aktualisierung der Frage erwähnt, gibt es einetoLocalizedPattern() Methode inSimpleDateFormat das gibt die Formatzeichenfolge zurück.

Ursprüngliche Antwort

SimpleDateFormatverwendet den folgenden Code in seinem privaten Konstruktor:

<code>...
ResourceBundle r = LocaleData.getDateFormatData(loc);
if (!isGregorianCalendar()) {
    try {
        dateTimePatterns = r.getStringArray(getCalendarName() + ".DateTimePatterns");
    } catch (MissingResourceException e) {
    }
}
if (dateTimePatterns == null) {
    dateTimePatterns = r.getStringArray("DateTimePatterns");
}
...
</code>

Die eigentlichen Formatstrings scheinen also in a zu seinResourceBundlezugegriffen über dieLocaleData.getDateFormatData()Methode.

Leider ist dieLocaleDataKlasse ist ein Teil des Innerensun.util.resources Paket.

 Gelin Luo08. Juni 2015, 22:35
Was ist, wenn ich nur den Datumsteil ausdrucken möchte?M/d/yy ohne den Zeitteil, wie in der Beispielausgabe:h:mm a?
 Johan Kaving12. Mai 2012, 08:41
Aber ich sehe, dass Sie die tatsächliche Lösung gefunden haben, die ich in SimpleDateFormat verpasst habe :-)
 Johan Kaving11. Juni 2015, 15:26
Ich denke du könntest es tundateLocalizedFormatPattern.split(" ")[0]Das funktioniert aber nur, wenn das Format Datum und Uhrzeit durch ein Leerzeichen trennt. Ich weiß nicht, ob es eine generische Möglichkeit gibt, nur den Datumsteil aus einem Datumsformat abzurufen.
 Russian Bear12. Mai 2012, 09:23
Deine Antwort hat mich dazu geführt :-)
 Russian Bear12. Mai 2012, 08:31
Johan, vielen Dank!

Ich denke, was Sie wollen, ist das zu verwendenDateFormat Klasse. Besuche diegetDateInstance(int, Locale) Methode.

Ihre Antwort auf die Frage