Flash CS3-Dokumentation |
|||
| Programmieren mit ActionScript 3.0 > Verwenden von Datums- und Uhrzeitangaben > Verwalten von Datums- und Uhrzeitangaben | |||
Alle Funktionen zum Verwalten von Kalenderdaten und Uhrzeiten in ActionScript 3.0 sind in der Date-Hauptklasse konzentriert. Die Date-Klasse enthält Methoden und Eigenschaften, mit denen Sie Datums- und Uhrzeitangaben entweder in der Standardweltzeit (UTC, Coordinated Universal Time) oder in der spezifischen Ortszeit einer Zeitzone verwalten können. Bei der UTC handelt es sich um eine Standardzeitdefinition, die der Greenwich Mean Time (GMT) entspricht.
Die Date-Klasse ist mit Abstand eine der vielseitigsten Konstruktormethoden aller Hauptklassen. Sie können diese Klasse auf vier verschiedene Arten aufrufen.
Wenn erstens keine Parameter angegeben werden, gibt der Date()-Konstruktor ein Date-Objekt mit den aktuellen Datums- und Uhrzeitangaben in der Ortszeit der entsprechenden Zeitzone zurück. Beispiel:
var now:Date = new Date();
Wenn zweitens ein einzelner numerischer Parameter angegeben wird, wird dieser im Date()-Konstruktor als Anzahl der Millisekunden seit dem 1. Januar 1970 interpretiert und ein entsprechendes Date-Objekt zurückgegeben. Beachten Sie, dass der übergebene Wert als Millisekunden seit dem 1. Januar 1970 (UTC) interpretiert wird. Beim Date-Objekt werden jedoch Werte in der entsprechenden Ortszeit angegeben, es sei denn, Sie verwenden UTC-spezifische Methoden, um die Werte abzurufen und anzuzeigen. Wenn Sie ein neues Date-Objekt mit einem einzelnen milliseconds-Parameter erstellen, beachten Sie daher dabei den Zeitunterschied zwischen der Ortszeit und der Weltzeit. Mit den folgenden Anweisungen wird ein Date-Objekt erstellt, das auf Mitternacht des 1. Januar 1970 (UTC) gesetzt ist:
var millisecondsPerDay:int = 1000 * 60 * 60 * 24; // Date-Objekt für den Tag nach dem Startdatum 01.01.1970 abrufen var startTime:Date = new Date(millisecondsPerDay);
Sie können drittens mehrere numerische Parameter an den Date()-Konstruktor übergeben. Diese Parameter werden jeweils als Jahr, Monat, Tag, Stunde, Minute, Sekunde und Millisekunde verarbeitet. Ein entsprechendes Date-Objekt wird zurückgegeben. Bei diesen Eingabeparametern wird davon ausgegangen, dass sie in Ortszeit und nicht gemäß der Weltzeit (UTC) angegeben werden. Mit den folgenden Anweisungen wird ein Date-Objekt erstellt, das auf Mitternacht des 1. Januar 2000, Ortszeit gesetzt ist:
var millenium:Date = new Date(2000, 0, 1, 0, 0, 0, 0);
Sie können viertens einen einzelnen Stringparameter an den Date()-Konstruktor übergeben. Dieser String wird in Datums- oder Zeitkomponenten geparst. Anschließend wird ein entsprechendes Date-Objekt zurückgegeben. Bei dieser Vorgehensweise empfiehlt es sich, den Date()-Konstruktor in einen try..catch-Codeblock einzubetten, um eventuelle Parsingfehler abzufangen. Der Date()-Konstruktor kann eine Reihe verschiedener Stringformate verarbeiten. Siehe dazu die entsprechende Auflistung im Komponenten-Referenzhandbuch für ActionScript 3.0. Mit der folgenden Anweisung wird ein neues Date-Objekt mit einem Stringwert initialisiert:
var nextDay:Date = new Date("Mon May 1 2006 11:30:00 AM");
Wenn der Date()-Konstruktor den Stringparameter nicht erfolgreich analysieren kann, wird eine Ausnahme ausgelöst. Das resultierende Date-Objekt enthält jedoch einen ungültigen Datumswert.
Sie können die Werte verschiedener Zeiteinheiten in einem Date-Objekt mithilfe der Eigenschaften oder Methoden der Date-Klasse abrufen. Mit jeder der folgenden Eigenschaften wird der Wert für eine bestimmte Zeiteinheit im Date-Objekt abgerufen:
fullYear-Eigenschaftmonth-Eigenschaft (im numerischen Format von 0 für Januar bis 11 für Dezember)date-Eigenschaft (mit dem numerischen Kalendertag im Monat, im Bereich von 1 bis 31)day-Eigenschaft (der Wochentag im numerischen Format, mit dem Wert 0 für Sonntag)hours-Eigenschaft (im Bereich von 0 bis 23)minutes-Eigenschaftseconds-Eigenschaftmilliseconds-EigenschaftÜber die Date-Klasse stehen zahlreiche Möglichkeiten zur Verfügung, um jeden dieser Werte abzurufen. Sie können den Wert für den Monat eines Date-Objekts beispielsweise auf vier verschiedene Weisen abrufen:
month-EigenschaftgetMonth()-MethodemonthUTC-EigenschaftgetMonthUTC()-MethodeAlle vier Möglichkeiten sind im Wesentlichen gleich effizient, sodass Sie das Verfahren anwenden können, das sich für die entsprechende Anwendung am besten eignet.
Alle aufgeführten Eigenschaften sind Komponenten des Date-Gesamtwerts. Der Wert der milliseconds-Eigenschaft ist beispielsweise nie größer als 999, da beim Erreichen von 1000 der Wert der seconds-Eigenschaft um 1 erhöht und der Wert der milliseconds-Eigenschaft auf 0 zurückgesetzt wird.
Wenn Sie den Wert des Date-Objekts in Millisekunden seit dem 1. Januar 1970 (UTC) abrufen möchten, können Sie die getTime()-Methode verwenden. Mit dem Gegenstück, der setTime()-Methode, können Sie den Wert eines vorhandenen Date-Objekts in Millisekunden ab dem 1. Januar 1970 (UTC) ändern.
Sie können Datums- und Uhrzeitangaben mithilfe der Date-Klasse addieren und subtrahieren. Datumswerte werden intern in Millisekunden gespeichert, sodass Sie andere Werte in Millisekunden umrechnen sollten, bevor Sie sie zu Date-Objekten addieren oder von Date-Objekten subtrahieren.
Wenn in einer Anwendung zahlreiche Datums- und Uhrzeitberechnungen durchgeführt werden, empfiehlt es sich, Konstanten für häufig verwendete Zeiteinheiten in Millisekunden zu erstellen, wie beispielsweise die folgende Konstante:
public static const millisecondsPerMinute:int = 1000 * 60; public static const millisecondsPerHour:int = 1000 * 60 * 60; public static const millisecondsPerDay:int = 1000 * 60 * 60 * 24;
Nun können Datumsberechnungen mit Standardzeiteinheiten poblemlos durchgeführt werden. Mit dem folgenden Code wird ein Datumswert mithilfe der getTime()-Methode und der setTime()-Methode auf eine Stunde vor der aktuellen Zeit gesetzt:
var oneHourFromNow:Date = new Date(); oneHourFromNow.setTime(oneHourFromNow.getTime() + millisecondsPerHour);
Eine andere Möglichkeit zum Festlegen eines Datumswerts besteht darin, ein neues Date-Objekt mit einem milliseconds-Parameter zu erstellen. Mit dem folgenden Code werden beispielsweise 30 Tage zu einem Date-Objekt addiert, um dadurch ein anderes Date-Objekt zu berechnen:
// Setzt das Rechnungsdatum auf das aktuelle Datum. var invoiceDate:Date = new Date(); // Addiert 30 Tage zur Berechnung des Fälligkeitsdatums. var dueDate:Date = new Date(invoiceDate.getTime() + (30 * millisecondsPerDay));
Anschließend wird die millisecondsPerDay-Konstante mit 30 multipliziert, um einen Zeitraum von 30 Tagen anzugeben. Das Ergebnis wird zum Wert von invoiceDate addiert und zum Festlegen des Wertes von dueDate verwendet.
Datums- und Uhrzeitberechnungen können bei der Umwandlung von Datumsangaben zwischen zwei Zeitzonen eingesetzt werden. Dazu kann auch die getTimezoneOffset()-Methode verwendet werden, bei der der Wert in Minuten zurückgegeben wird, um die die Zeitzone des Date-Objekts von der Weltzeit abweicht. Mit der Methode wird ein Wert in Minuten zurückgegeben, da nicht alle Zeitzonen in Segmente mit vollen Stunden unterteilt sind. Bei einigen liegen halbstündliche Abweichungen zu anderen Zeitzonen vor.
Im folgenden Beispiel wird anhand des Zeitzonenunterschieds ein Date-Objekt von der Ortszeit in die Weltzeit konvertiert. Bei der Umwandlung wird zunächst der Wert für die Zeitzone in Millisekunden berechnet und der Date-Wert dann um diese Zeitangabe geändert:
// Erstellt ein Date-Objekt in der Ortszeit.
var nextDay:Date = new Date("Mon May 1 2006 11:30:00 AM");
// Ändert das Date-Objekt in die Weltzeit durch Addieren oder Subtrahieren des Zeitzonenunterschieds.
var offsetMilliseconds:Number = nextDay.getTimezoneOffset() * 60 * 1000;
nextDay.setTime(nextDay.getTime() + offsetMilliseconds);
Flash CS3
Eine E-Mail an mich senden, wenn dieser Seite Kommentare hinzugefügt werden | Kommentarbericht
Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/main/00000073.html