Date QML Type

Bietet Datumsfunktionen. Mehr...

Import Statement: import QtQml

Methoden

Detaillierte Beschreibung

Das QML-Date-Objekt erweitert das JS-Date-Objekt um Funktionen, die das jeweilige Gebietsschema berücksichtigen.

Funktionen, die ein format Argument akzeptieren, nehmen entweder Locale.LongFormat, Locale.ShortFormat, Locale.NarrowFormat Aufzählungswerte oder einen String, der das Format angibt.

Die Form der unterstützten Formatzeichenketten ist in der Dokumentation von QDate::toString(), QTime::toString() und QDateTime::toString() beschrieben.

Wenn das Datum ungültig ist, wird eine leere Zeichenkette zurückgegeben.

Format Aufzählungswerte

Verwenden Sie die Aufzählungswerte, wenn Sie ein Format wünschen, das den Einstellungen des Gebietsschemas entspricht.

Locale.LongFormatLängeres Format
Locale.ShortFormatKürzeres Format
Locale.NarrowFormatIn diesem Zusammenhang dasselbe wie Locale.ShortFormat

Das Format, das die Aufzählungen darstellen, hängt von Ihrem Gebietsschema ab, aber auch von der Methode, für die die Aufzählung verwendet wird.

Zum Beispiel werden für das Gebietsschema en_US diese Formatzeichenfolgen verwendet:

FunktionGebietsschema AufzählungFormat Zeichenfolge
fromLocaleDateString, toLocaleDateStringLocale.LongFormatdddd, MMMM d, yyyy
fromLocaleDateString, toLocaleDateStringLocale.ShortFormatM/d/yy
fromLocaleTimeString, toLocaleTimeStringLocale.LongFormath:mm:ss AP t
fromLocaleTimeString, toLocaleTimeStringLocale.ShortFormath:mm AP
fromLocaleString, toLocaleStringLocale.LongFormatdddd, MMMM d, yyyy h:mm:ss AP t
fromLocaleString, toLocaleStringLocale.ShortFormatM/d/yy h:mm AP

Weitere Hinweise

Die Verwendung der ortsabhängigen Funktionen zur Datums- oder Zeitformatierung kann aufgrund einer Inkonsistenz in der Spezifikation zwischen Qt und JS zu falsch formatierten Zeiten führen. ECMA-262 spezifiziert, dass historische Daten durch Projektion der aktuellen Regeln für die Sommerzeit auf vergangene Jahre interpretiert werden sollten, während Qt historische Daten (sofern verfügbar) verwendet, um zu bestimmen, ob an einem bestimmten Datum die Sommerzeit in Kraft war. Daher kann die Konstruktion eines Datumswertes in JS und seine Konvertierung in einen String mit Hilfe der lokalisierten Funktionen ein um eine Stunde falsches Ergebnis liefern, wenn die Sommerzeit derzeit in Kraft ist, während sie für die angegebene Zeit nicht in Kraft war, oder andersherum.

Es gibt verschiedene Datumsformate mit unterschiedlichen Auffassungen von negativen Jahren. In der menschlichen Sprache gibt es kein Jahr 0. Das Jahr nach 1BC ist 1AD. Dieses Verständnis spiegelt sich beim Drucken oder Parsen von Datumsangaben in einem der Formate wider, die nicht von ECMAScript standardisiert sind. Das heißt: toString(), toLocaleString(), toUTCString() und Konsorten. ECMAScript standardisiert ein Format: ISO 8601. Dies ist das Format, das Sie erhalten, wenn Sie toISOString() aufrufen. Dieses Format enthält eine Jahreszahl 0, die in anderen Formaten 1BC ist. Daher erhalten Sie unterschiedliche Jahreszahlen, wenn Sie negative Daten mit toISOString() und toString() ausgeben.

Wenn das Jahr mit dem Date-Konstruktor oder set(UTC)FullYear() gesetzt wird, wird die von ISO 8601 festgelegte Konvention verwendet und 0 ist ein gültiges Jahr. Das bedeutet, dass negative Jahre, die mit dem Konstruktor oder set(UTC)FullYear() gesetzt werden, auf Null basieren und daher um ein Jahr von dem abweichen, was mit toString() und friends ausgegeben wird. Wenn Sie die Ausgabe einer der to*String()-Methoden analysieren, erhalten Sie denselben Datumswert, den Sie zuvor gedruckt haben. Date.parse() erkennt die verschiedenen Formate und ihre Konvention über das Vorhandensein des Jahres 0.

Beachten Sie, dass sich dies von anderen JavaScript-Implementierungen unterscheidet, die normalerweise das Jahr 0 in allen String-Darstellungen als gültig behandeln. Da die Datumsformate im ECMAScript-Standard "implementierungsabhängig" sind, ist dies jedoch immer noch gültig.

Siehe auch Locale.

Methode Dokumentation

string fromLocaleDateString(locale, dateString, format)

Konvertiert die Datumszeichenkette dateString mit Hilfe von locale und format in ein Date Objekt.

Wenn format nicht angegeben ist, wird Locale.LongFormat verwendet.

Wenn locale nicht angegeben ist, wird das Standardgebietsschema verwendet.

Das folgende Beispiel zeigt, wie das aktuelle Datum zunächst als Datumszeichenfolge unter Verwendung des Standardgebietsschemas und -formats formatiert und dann auf dieselbe Weise wieder zurück geparst wird:

import QtQml 2.0

QtObject {
    property var locale: Qt.locale()
    property date currentDate: new Date()
    property string dateString

    Component.onCompleted: {
        dateString = currentDate.toLocaleDateString();
        print(Date.fromLocaleDateString(dateString));
    }
}

string fromLocaleString(locale, dateTimeString, format)

Konvertiert die Datumszeichenfolge dateTimeString unter Verwendung von locale und format in ein Date Objekt.

Wenn format nicht angegeben ist, wird Locale.LongFormat verwendet.

Wenn locale nicht angegeben ist, wird das Standardgebietsschema verwendet.

Das folgende Beispiel zeigt, wie eine Datetime-Zeichenkette in einem bestimmten Format unter Verwendung des Standardgebietsschemas geparst wird:

import QtQml 2.0

QtObject {
    property var locale: Qt.locale()
    property string dateTimeString: "Tue 2013-09-17 10:56:06"

    Component.onCompleted: {
        print(Date.fromLocaleString(locale, dateTimeString, "ddd yyyy-MM-dd hh:mm:ss"));
    }
}

string fromLocaleTimeString(locale, timeString, format)

Konvertiert die Zeitzeichenkette timeString in ein Date Objekt unter Verwendung von locale und format.

Wenn format nicht angegeben ist, wird Locale.LongFormat verwendet.

Wenn locale nicht angegeben ist, wird das Standardgebietsschema verwendet.

Das folgende Beispiel zeigt, wie die aktuelle Uhrzeit zunächst als Zeitzeichenfolge unter Verwendung des Standardgebietsschemas und eines Kurzformats formatiert und dann auf dieselbe Weise wieder zurück geparst wird:

import QtQml 2.2

QtObject {
    property var locale: Qt.locale()
    property date currentTime: new Date()
    property string timeString

    Component.onCompleted: {
        timeString = currentTime.toLocaleTimeString(locale, Locale.ShortFormat);
        print(Date.fromLocaleTimeString(locale, timeString, Locale.ShortFormat));
    }
}

string timeZoneUpdated()

Informiert die JS-Engine darüber, dass die Zeitzone des Systems geändert wurde, was für die korrekte Verarbeitung von Datumsdaten erforderlich ist.

JS speichert Datumsobjekte in UTC-Zeit; jeder Zugriff auf und von Date-Komponenten in lokaler Zeit beinhaltet die Anwendung des aktuellen Offsets von UTC. Wenn sich der aktuelle Offset aufgrund einer Aktualisierung der Zeitzone ändert, muss die JS-Engine informiert werden, damit sie den Offset neu berechnen kann.

Diese Funktion sollte aufgerufen werden, nachdem die Zeitzone des Systems aktualisiert worden ist.

Zum Beispiel würde eine Anwendung, die die Zeitzone ändert, timeZoneUpdated() aufrufen, nachdem die neue Zeitzone eingestellt wurde:

property string selectedTimeZone

onSelectedTimeZoneChanged: {
    MyFunctions.setSystemTimeZone(selectedTimeZone)
    Date.timeZoneUpdated()
}

string toLocaleDateString(locale, format)

Konvertiert das Datum in eine Zeichenkette, die das für das angegebene locale geeignete Datum in der angegebenen format enthält.

Wenn format nicht angegeben ist, wird Locale.LongFormat verwendet.

Wenn locale nicht angegeben ist, wird das Standardgebietsschema verwendet.

Das folgende Beispiel zeigt das aktuelle Datum für das deutsche Gebietsschema formatiert:

import QtQuick 2.0

Text {
    text: "The date is: " + new Date().toLocaleDateString(Qt.locale("de_DE"))
}

string toLocaleString(locale, format)

Konvertiert das Datum in eine Zeichenkette, die das Datum und die Uhrzeit enthält, die für das angegebene locale im angegebenen format geeignet sind.

Wenn format nicht angegeben ist, wird Locale.LongFormat verwendet.

Wenn locale nicht angegeben ist, wird das Standardgebietsschema verwendet.

Das folgende Beispiel zeigt das aktuelle Datum und die Uhrzeit für das deutsche Gebietsschema formatiert:

import QtQuick 2.0

Text {
    text: "The date is: " + new Date().toLocaleString(Qt.locale("de_DE"))
}

string toLocaleTimeString(locale, format)

Konvertiert das Datum in eine Zeichenkette, die die für das angegebene locale geeignete Uhrzeit im angegebenen format enthält.

Wenn format nicht angegeben ist, wird Locale.LongFormat verwendet.

Wenn locale nicht angegeben ist, wird das Standardgebietsschema verwendet.

Das folgende Beispiel zeigt die aktuelle Zeit für das deutsche Gebietsschema formatiert:

import QtQuick 2.0

Text {
    text: "The date is: " + new Date().toLocaleTimeString(Qt.locale("de_DE"))
}

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.