Formatieren von Datum und Uhrzeit

Flash Player 10.1 und höher, Adobe AIR 2.0 und höher

Das Format zur Anzeige von Datum und Uhrzeit unterscheidet sich ebenfalls stark von Region zu Region. Im Folgenden wird beispielsweise gezeigt, wie der 2. Januar 1962, 13.01 Uhr, in Kurzform für bestimmte Gebietsschemas angezeigt wird:

Ländereinstellung

Format von Datum und Uhrzeit

en-US (Englisch, USA)

1/2/62 1:01pm

fr-FR (Französisch, Frankreich)

2/1/62 13:01

ja-JP (Japanisch, Japan)

1962/2/1 13:01

Verwenden der DateTimeFormatter-Klasse

Die DateTimeFormatter-Klasse formatiert Werte mit dem Date-Datentyp in Strings mit Datum und Uhrzeit, und zwar gemäß den Konventionen eines bestimmten Gebietsschemas.

Die Formatierung folgt einem Musterstring, der Buchstabenfolgen enthält, die durch ein Datum oder eine Uhrzeit ersetzt werden. Im Muster „jjjj/MM“ werden beispielsweise die Buchstaben „jjjj“ durch die vierstellige Jahreszahl ersetzt, danach folgt ein Schrägstrich (/) und eine zweistellige Monatsangabe.

Der Musterstring kann explizit über die setDateTimePattern()-Methode festgelegt werden. Es empfiehlt sich jedoch, das Muster automatisch über die Gebietsschema-Einstellungen des Benutzers und die Voreinstellungen des Betriebssystems festlegen zu lassen. So wird gewährleistet, dass das Ergebnis in kultureller Hinsicht geeignet ist.

Mithilfe von DateTimeFormatter können Datums- und Zeitangaben in drei Standardformaten angezeigt werden (LONG, MEDIUM und SHORT). Auch ein benutzerdefiniertes Muster (CUSTOM) kann verwendet werden. Es ist auch möglich, ein Format für das Datum und ein anderes Format für die Uhrzeit zu verwenden. Die tatsächlich für die einzelnen Formate verwendeten Muster sind je nach Betriebssystem etwas unterschiedlich.

Sie können die Formate angeben, wenn Sie ein DateTimeFormatter-Objekt erstellen. Wenn keine Formatparameter angegeben werden, wird der Standardwert DateTimeStyle.LONG verwendet. Sie können die Formate später über die setDateTimeStyles()-Methode ändern, wie im folgenden Beispiel gezeigt:

var date:Date = new Date(2009, 2, 27, 13, 1); 
var dtf:DateTimeFormatter = new DateTimeFormatter("en-US", 
    DateTimeStyle.LONG, DateTimeStyle.LONG); 
 
var longDate:String = dtf.format(date); 
trace(longDate); // March 27, 2009 1:01:00 PM 
 
dtf.setDateTimeStyles(DateTimeStyle.SHORT, DateTimeStyle.SHORT); 
var shortDate:String = dtf.format(date); 
trace(shortDate); // 3/27/09 1:01 PM

Lokalisieren der Namen von Monaten und Tagen

In vielen Anwendungen werden Listen mit den Namen der Monate und Wochentage für die Anzeige in Kalendern und Pulldownlisten verwendet.

Über die DateTimeFormatter.getMonthNames()-Methode können Sie eine lokalisierte Liste der Monatsnamen abrufen. Je nach Betriebssystem stehen möglicherweise vollständige und abgekürzte Namen zur Verfügung. Für Monatsnamen in voller Länge übergeben Sie den Wert DateTimeNameStyle.FULL. Für eine Kurzversion übergeben Sie die Werte DateTimeNameStyle.LONG_ABBREVIATION oder DateTimeNameStyle.SHORT_ABBREVIATION.

In einigen Sprachen ändert sich der Name eines Monats in seine Genitivform, wenn er im Datumsformat neben dem Tag platziert wird. Wenn Sie vorhaben, nur den Namen des Monats zu verwenden, übergeben Sie deshalb den Wert DateTimeNameContext.STANDALONE an die getMonthNames()-Methode. Um die Monatsnamen in formatierten Datumsangaben zu verwenden, übergeben Sie jedoch den Wert DateTimeNameContext.FORMAT.

var dtf:DateTimeFormatter = new DateTimeFormatter("fr-FR"); 
var months:Vector.<String> = dtf.getMonthNames(DateTimeNameStyle.FULL, 
        DateTimeNameContext.STANDALONE); 
trace(months[0]); // janvier 
months = dtf.getMonthNames(DateTimeNameStyle.SHORT_ABBREVIATION, 
         DateTimeNameContext.STANDALONE); 
trace(months[0]); // janv.

Die DateTimeFormatter.getWeekdayNames()-Methode liefert eine lokalisierte Liste der Namen der Wochentage. Die getWeekdayNames()-Methode akzeptiert dieselben nameStyle- und context-Parameter wie die getMonthNames()-Methode.

var dtf:DateTimeFormatter = new DateTimeFormatter("fr-FR"); 
var weekdays:Vector.<String> = dtf.getWeekdayNames(DateTimeNameStyle.FULL, 
           DateTimeNameContext.STANDALONE); 
trace(weekdays[0]); // dimanche 
weekdays = dtf.getWeekdayNames(DateTimeNameStyle.LONG_ABBREVIATION, 
           DateTimeNameContext.STANDALONE); 
trace(weekdays[0]); // dim.

Außerdem gibt die getFirstWeekday()-Methode den Indexwert des Tages zurück, mit dem die Woche im ausgewählten Gebietsschema beginnt.