Auf dieser Seite

QDateTime Class

Die Klasse „QDateTime“ bietet Funktionen für Datum und Uhrzeit. Mehr...

Header: #include <QDateTime>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Hinweis: Alle Funktionen dieser Klasse sind reentrant.

QDateTime-Vergleiche

KategorieVergleichbare Typen
schwachQDateTime

Öffentliche Typen

(since 6.7) enum class TransitionResolution { Reject, RelativeToBefore, RelativeToAfter, PreferBefore, PreferAfter, …, PreferDaylightSaving }
enum class YearRange { First, Last }

Öffentliche Funktionen

QDateTime(QDate date, QTime time, const QTimeZone &timeZone, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior)
QDateTime()
(since 6.5) QDateTime(QDate date, QTime time, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior)
QDateTime(const QDateTime &other)
QDateTime(QDateTime &&other)
~QDateTime()
QDateTime addDays(qint64 ndays) const
(since 6.4) QDateTime addDuration(std::chrono::milliseconds msecs) const
QDateTime addMSecs(qint64 msecs) const
QDateTime addMonths(int nmonths) const
QDateTime addSecs(qint64 s) const
QDateTime addYears(int nyears) const
QDate date() const
qint64 daysTo(const QDateTime &other) const
bool isDaylightTime() const
bool isNull() const
bool isValid() const
qint64 msecsTo(const QDateTime &other) const
int offsetFromUtc() const
qint64 secsTo(const QDateTime &other) const
void setDate(QDate date, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior)
void setMSecsSinceEpoch(qint64 msecs)
void setSecsSinceEpoch(qint64 secs)
void setTime(QTime time, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior)
void setTimeZone(const QTimeZone &toZone, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior)
void swap(QDateTime &other)
QTime time() const
(since 6.5) QTimeZone timeRepresentation() const
Qt::TimeSpec timeSpec() const
QTimeZone timeZone() const
QString timeZoneAbbreviation() const
CFDateRef toCFDate() const
QDateTime toLocalTime() const
qint64 toMSecsSinceEpoch() const
NSDate *toNSDate() const
QDateTime toOffsetFromUtc(int offsetSeconds) const
qint64 toSecsSinceEpoch() const
(since 6.4) std::chrono::sys_time<std::chrono::milliseconds> toStdSysMilliseconds() const
(since 6.4) std::chrono::sys_seconds toStdSysSeconds() const
QString toString(const QString &format, QCalendar cal) const
QString toString(QStringView format) const
QString toString(Qt::DateFormat format = Qt::TextDate) const
QString toString(const QString &format) const
QString toString(QStringView format, QCalendar cal) const
QDateTime toTimeZone(const QTimeZone &timeZone) const
QDateTime toUTC() const
(since 6.4) QDateTime &operator+=(std::chrono::milliseconds duration)
(since 6.4) QDateTime &operator-=(std::chrono::milliseconds duration)
QDateTime &operator=(const QDateTime &other)

Statische öffentliche Mitglieder

(since 6.5) QDateTime currentDateTime(const QTimeZone &zone)
QDateTime currentDateTime()
QDateTime currentDateTimeUtc()
qint64 currentMSecsSinceEpoch()
qint64 currentSecsSinceEpoch()
QDateTime fromCFDate(CFDateRef date)
QDateTime fromMSecsSinceEpoch(qint64 msecs, const QTimeZone &timeZone)
QDateTime fromMSecsSinceEpoch(qint64 msecs)
QDateTime fromNSDate(const NSDate *date)
QDateTime fromSecsSinceEpoch(qint64 secs, const QTimeZone &timeZone)
QDateTime fromSecsSinceEpoch(qint64 secs)
(since 6.4) QDateTime fromStdLocalTime(const std::chrono::local_time<std::chrono::milliseconds> &time)
(since 6.4) QDateTime fromStdTimePoint(const std::chrono::time_point<Clock, Duration> &time)
(since 6.4) QDateTime fromStdTimePoint(const std::chrono::local_time<std::chrono::milliseconds> &time)
(since 6.4) QDateTime fromStdTimePoint(std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds> time)
(since 6.4) QDateTime fromStdZonedTime(const std::chrono::zoned_time<std::chrono::milliseconds, const std::chrono::time_zone *> &time)
QDateTime fromString(const QString &string, const QString &format, int baseYear, QCalendar cal)
(since 6.0) QDateTime fromString(QStringView string, Qt::DateFormat format = Qt::TextDate)
QDateTime fromString(const QString &string, Qt::DateFormat format = Qt::TextDate)
(since 6.0) QDateTime fromString(QStringView string, QStringView format, QCalendar cal)
(since 6.7) QDateTime fromString(QStringView string, QStringView format, int baseYear = QLocale::DefaultTwoDigitBaseYear)
(since 6.0) QDateTime fromString(const QString &string, QStringView format, QCalendar cal)
(since 6.7) QDateTime fromString(const QString &string, QStringView format, int baseYear = QLocale::DefaultTwoDigitBaseYear)
QDateTime fromString(const QString &string, const QString &format, QCalendar cal)
(since 6.7) QDateTime fromString(const QString &string, const QString &format, int baseYear = QLocale::DefaultTwoDigitBaseYear)
(since 6.7) QDateTime fromString(QStringView string, QStringView format, int baseYear, QCalendar cal)
(since 6.0) QDateTime fromString(const QString &string, QStringView format, int baseYear, QCalendar cal)
bool operator!=(const QDateTime &lhs, const QDateTime &rhs)
(since 6.4) QDateTime operator+(const QDateTime &dateTime, std::chrono::milliseconds duration)
(since 6.4) QDateTime operator+(std::chrono::milliseconds duration, const QDateTime &dateTime)
(since 6.4) std::chrono::milliseconds operator-(const QDateTime &lhs, const QDateTime &rhs)
(since 6.4) QDateTime operator-(const QDateTime &dateTime, std::chrono::milliseconds duration)
bool operator<(const QDateTime &lhs, const QDateTime &rhs)
QDataStream &operator<<(QDataStream &out, const QDateTime &dateTime)
bool operator<=(const QDateTime &lhs, const QDateTime &rhs)
bool operator==(const QDateTime &lhs, const QDateTime &rhs)
bool operator>(const QDateTime &lhs, const QDateTime &rhs)
bool operator>=(const QDateTime &lhs, const QDateTime &rhs)
QDataStream &operator>>(QDataStream &in, QDateTime &dateTime)

Ausführliche Beschreibung

Ein QDateTime-Objekt kodiert ein Kalenderdatum und eine Uhrzeit (ein „Datum/Uhrzeit-Paar“) gemäß einer Zeitdarstellung. Es vereint Merkmale der Klassen „ QDate “ und „ QTime “. Es kann das aktuelle Datum und die Uhrzeit aus der Systemuhr auslesen. Es bietet Funktionen zum Vergleichen von Datums- und Zeitangaben sowie zum Manipulieren einer Datums- und Zeitangabe durch Hinzufügen einer bestimmten Anzahl von Sekunden, Tagen, Monaten oder Jahren.

QDateTime kann Datums- und Zeitangaben in Bezug auf „ local time “, „ UTC “, eine angegebene „ offset from UTC “ oder eine angegebene „ time zone “ beschreiben. Jede dieser Zeitdarstellungen kann in einer geeigneten Instanz der Klasse „ QTimeZone “ gekapselt werden. Beispielsweise wendet die Zeitzone „Europe/Berlin“ die in Deutschland geltenden Sommerzeitregeln an. Im Gegensatz dazu liegt ein fester Offset von +3600 Sekunden gegenüber UTC eine Stunde vor UTC (in der ISO-Standardnotation üblicherweise als „UTC+01:00“ geschrieben), ohne dass dabei Komplikationen durch die Sommerzeit auftreten. Bei der Verwendung der Ortszeit oder einer angegebenen Zeitzone werden Zeitzonenübergänge (siehe below) berücksichtigt. Die Methode ` timeSpec()` eines `QDateTime`-Objekts gibt Auskunft darüber, welche der vier Arten der Zeitdarstellung verwendet wird; die Methode ` timeRepresentation()` liefert eine vollständige Beschreibung dieser Zeitdarstellung als ` QTimeZone`.

Ein QDateTime-Objekt wird in der Regel entweder durch die explizite Angabe von Datum und Uhrzeit im Konstruktor oder durch die Verwendung einer statischen Funktion wie currentDateTime() oder fromMSecsSinceEpoch() erstellt. Datum und Uhrzeit können mit setDate() und setTime() geändert werden. Ein Datums- und Zeitwert kann auch mithilfe der Funktion ` setMSecsSinceEpoch()` festgelegt werden, die die Zeit in Millisekunden seit dem Beginn des Jahres 1970 in UTC als Argument benötigt. Die Funktion ` fromString()` gibt ein `QDateTime`-Objekt zurück, wobei eine Zeichenkette und ein Datumsformat zur Interpretation des Datums in der Zeichenkette angegeben werden.

QDateTime::currentDateTime() gibt ein `QDateTime`-Objekt zurück, das das aktuelle Datum und die aktuelle Uhrzeit in Bezug auf eine bestimmte Zeitdarstellung angibt, beispielsweise die Ortszeit (Standard). ` QDateTime::currentDateTimeUtc()` gibt ein `QDateTime`-Objekt zurück, das das aktuelle Datum und die aktuelle Uhrzeit in Bezug auf UTC angibt; dies entspricht ` QDateTime::currentDateTime(QTimeZone::UTC)`.

Die Funktionen ` date()` und ` time()` bieten Zugriff auf die Datums- und Zeitkomponenten des Datums- und Zeitobjekts. Die gleichen Informationen werden im Textformat von der Funktion ` toString()` bereitgestellt.

QDateTime bietet einen vollständigen Satz von Operatoren zum Vergleichen zweier QDateTime-Objekte, wobei kleiner früher und größer später bedeutet.

Sie können ein Datums- und Zeitobjekt um eine bestimmte Anzahl von Millisekunden mit ` addMSecs()` (), um Sekunden mit ` addSecs()` oder um Tage mit ` addDays()` erhöhen (oder verringern). Ebenso können Sie ` addMonths()` und ` addYears()` verwenden. Die Funktion „ daysTo “ () gibt die Anzahl der Tage zwischen zwei Datums- und Zeitangaben zurück, „ secsTo “ () gibt die Anzahl der Sekunden zwischen zwei Datums- und Zeitangaben zurück und „ msecsTo “ () gibt die Anzahl der Millisekunden zwischen zwei Datums- und Zeitangaben zurück. Diese Operationen berücksichtigen gegebenenfalls die Sommerzeit (DST) und andere Zeitzonenwechsel.

Verwenden Sie ` toTimeZone()` (Datum/Uhrzeit umwandeln), um ein Datum/eine Uhrzeit in eine andere Zeitdarstellung umzuwandeln. Durch die Übergabe eines „Lightweight- QTimeZone “, das die Ortszeit, UTC oder einen festen Versatz gegenüber UTC darstellt, können Sie das Datum/die Uhrzeit so konvertieren, dass die entsprechende Zeitdarstellung verwendet wird; alternativ können Sie eine vollständige Zeitzone übergeben (deren ` timeSpec()`-Wert ` Qt::TimeZone` lautet), um diese stattdessen zu verwenden.

Anmerkungen

QDateTime berücksichtigt keine Schaltsekunden.

Alle Konvertierungen in und aus Zeichenfolgenformaten erfolgen unter Verwendung der C-Locale. Informationen zu lokalisierten Konvertierungen finden Sie unter QLocale.

Im gregorianischen Kalender gibt es kein Jahr 0. Datumsangaben in diesem Jahr gelten als ungültig. Das Jahr -1 ist das Jahr „1 vor Christus“ oder „1 vor unserer Zeitrechnung“. Der Tag vor dem 1. Januar 1 n. Chr. ist der 31. Dezember 1 v. Chr.

Die Verwendung der Ortszeit (Standard) oder einer angegebenen Zeitzone erfordert die Klärung etwaiger Probleme im Zusammenhang mit transitions. Infolgedessen können Operationen mit solchen QDateTime-Instanzen (insbesondere deren Erstellung) aufwändiger sein als die entsprechenden Operationen bei Verwendung von UTC oder eines festen Offsets davon.

Gültiger Datumsbereich

Der Wertebereich, den QDateTime darstellen kann, hängt von der internen Speicherimplementierung ab. QDateTime wird derzeit in einem qint64 als serieller msecs-Wert gespeichert, der Datum und Uhrzeit kodiert. Dies beschränkt den Datumsbereich auf etwa ±292 Millionen Jahre, verglichen mit dem Bereich von ±2 Milliarden Jahren bei „ QDate “. Bei der Erstellung eines QDateTime mit Extremwerten ist darauf zu achten, dass es nicht zu einem Speicherüberlauf kommt. Der genaue Bereich der unterstützten Werte variiert je nach verwendeter Zeitdarstellung.

Verwendung von Zeitzonen

QDateTime verwendet die Zeitzoneninformationen des Systems, um die aktuelle lokale Zeitzone und deren Abweichung von UTC zu ermitteln. Ist das System nicht korrekt konfiguriert oder nicht auf dem neuesten Stand, liefert QDateTime falsche Ergebnisse.

Ebenso verwendet QDateTime vom System bereitgestellte Informationen, um die Abweichungen anderer Zeitzonen von der UTC zu ermitteln. Sind diese Informationen unvollständig oder veraltet, liefert QDateTime falsche Ergebnisse. Weitere Details finden Sie in der Dokumentation zu „ QTimeZone “.

Auf modernen Unix-Systemen bedeutet dies, dass QDateTime in der Regel über genaue Informationen zu historischen Umstellungen (einschließlich Sommerzeit, siehe unten) verfügt, wann immer dies möglich ist. Unter Windows, wo das System keine historischen Zeitzonendaten unterstützt, wird die historische Genauigkeit in Bezug auf Zeitzonenübergänge – insbesondere einschließlich der Sommerzeit – nicht gewährleistet. Wenn Sie Qt jedoch mit der ICU-Bibliothek kompilieren, wird „ QTimeZone “ mit derselben Zeitzonendatenbank ausgestattet, wie sie unter Unix verwendet wird.

Zeitzonenübergänge

QDateTime berücksichtigt Zeitzonenübergänge, sowohl die Übergänge zwischen Standardzeit und Sommerzeit (DST) als auch die Übergänge, die auftreten, wenn eine Zeitzone ihren Standard-Offset ändert. Wenn der Übergang beispielsweise um 2:00 Uhr morgens stattfindet und die Uhr auf 3:00 Uhr vorgestellt wird, fehlt eine Stunde von 02:00:00 bis 02:59:59,999. Ein solcher Übergang wird als „Spring Forward“ bezeichnet, und die übersprungenen Zeiten haben keine Bedeutung. Verläuft ein Übergang in die andere Richtung – bekannt als „Fall Back“ –, wird ein Zeitintervall wiederholt: zunächst in der alten Zeitzone (in der Regel Sommerzeit), dann in der neuen Zeitzone (in der Regel Standardzeit), sodass die Zeiten in diesem Intervall mehrdeutig sind.

In einigen Zeitzonen wird eine „umgekehrte“ Sommerzeit angewendet, wobei im Sommer die Standardzeit und im Winter die Sommerzeit (mit einer geringeren Zeitverschiebung) gilt. In solchen Zeitzonen findet die Zeitumstellung im Frühjahr weiterhin statt und es wird eine Stunde vorverlegt; dabei handelt es sich jedoch um den Übergang aus der Sommerzeit, während die Zeitumstellung im Herbst weiterhin eine Stunde zurückversetzt, dabei aber den Übergang in die Sommerzeit darstellt.

Bei der Umrechnung von einer UTC-Zeit (oder einer Zeit mit festem Versatz gegenüber UTC) gibt es in jeder Zeitzone immer ein eindeutig gültiges Ergebnis. Bei der Kombination von Datum und Uhrzeit zu einem Datums- und Zeitangabe, die in Bezug auf die Ortszeit oder eine bestimmte Zeitzone ausgedrückt wird, kann das nominelle Ergebnis jedoch in einen Übergangszeitraum fallen, wodurch es entweder ungültig oder mehrdeutig wird. Methoden, bei denen diese Situation auftreten kann, nehmen einen Parameter „ resolve “ entgegen: Dieser wird immer ignoriert, wenn das angeforderte Datums- und Zeitformat gültig und eindeutig ist. Unter TransitionResolution finden Sie die Optionen, die Sie damit steuern können. Vor Qt 6.7 wurde das Äquivalent zu „ LegacyBehavior “ ausgewählt.

Für das übersprungene Intervall bei einer Zeitumstellung nach vorne führt die Interpretation der angeforderten Zeit mit einem der beiden Offsets zu einem tatsächlichen Zeitpunkt, zu dem der jeweils andere Offset in Gebrauch war; die Übergabe von ` TransitionResolution::RelativeToBefore ` für ` resolve ` führt daher tatsächlich zu einem Zeitpunkt nach der Umstellung, der die angeforderte Darstellung gehabt hätte, wenn die Umstellung nicht stattgefunden hätte. Ebenso führt „ TransitionResolution::RelativeToAfter “ für „ resolve “ zu einem Zeitpunkt vor der Umstellung, der die angeforderte Darstellung gehabt hätte, wäre die Umstellung früher erfolgt.

Wenn QDateTime arithmetische Operationen durchführt, wie beispielsweise mit `addDay()` oder ` addSecs()`, sorgt es dafür, dass ein gültiges Ergebnis erzeugt wird. Beispielsweise ergibt an einem Tag, an dem die Uhr von 02:00 auf 03:00 Uhr vorgestellt wird, das Hinzufügen einer Sekunde zu 01:59:59 das Ergebnis 03:00:00. Addiert man einen Tag zu 02:30 Uhr am Vortag, erhält man 03:30 Uhr am Tag der Zeitumstellung, während das Subtrahieren eines Tages durch Aufruf von ` addDay(-1)` von 02:30 Uhr am folgenden Tag zu 01:30 Uhr am Tag der Zeitumstellung führt. Während „ addSecs()“ einen Zeitversatz um die angegebene Anzahl von Sekunden liefert, passt „ addDays()“ das Datum an und korrigiert die Uhrzeit nur dann, wenn andernfalls ein ungültiges Ergebnis entstehen würde. Wendet man addDays(1) auf 03:00 Uhr am Tag vor der Zeitumstellung an, erhält man einfach 03:00 Uhr am Tag der Zeitumstellung, obwohl dieser erst 23 Stunden nach dem erstgenannten Zeitpunkt liegt; addSecs(24 * 60 * 60) liefert hingegen 04:00 Uhr am Tag der Zeitumstellung, da dies 24 Stunden später ist. Typische Zeitumstellungen führen dazu, dass manche Tage 23 oder 25 Stunden lang sind.

Für Datums- und Zeitangaben, die das System time_t darstellen kann (vom 14.12.1901 bis zum 18.01.2038 auf Systemen mit 32-Bit- time_t; für den gesamten Bereich, den QDateTime darstellen kann, wenn der Typ 64-Bit ist), werden die Standard-System-APIs verwendet, um den Versatz der Ortszeit gegenüber UTC zu ermitteln. Für Datums- und Zeitangaben, die von diesen System-APIs nicht verarbeitet werden (möglicherweise einschließlich einiger im Bereich time_t ), wird, sofern verfügbar, QTimeZone::systemTimeZone() verwendet, andernfalls wird eine bestmögliche Schätzung vorgenommen. In jedem Fall hängen die verwendeten Offset-Informationen vom System ab und können unvollständig oder – bei vergangenen Zeitpunkten – historisch ungenau sein. Darüber hinaus können sich bei zukünftigen Datumsangaben die Offsets der lokalen Zeitzone und die Sommerzeitregeln ändern, bevor dieses Datum eintritt.

Übergänge über ganze Tage

Eine kleine Anzahl von Zeitzonen hat im Zuge der Verschiebung der internationalen Datumsgrenze über ihr Gebiet hinweg ganze Tage übersprungen oder wiederholt. In diesen Fällen erkennt daysTo() die Doppelung oder Lücke nicht und verwendet lediglich die Differenz im Kalenderdatum; im Gegensatz dazu kennen msecsTo() und secsTo() das tatsächliche Zeitintervall. Ebenso entsprechen addMSecs() und addSecs() direkt der verstrichenen Zeit, während addDays(), addMonths() und addYears() dem nominellen Kalender folgen – abgesehen von Fällen, in denen das Landen in einer Lücke oder einer Doppelung die Auflösung einer Mehrdeutigkeit oder Ungültigkeit aufgrund einer Doppelung oder Auslassung erfordert.

Hinweis: Tage , die bei einem Kalenderwechsel, beispielsweise vom julianischen zum gregorianischen Kalender, „verloren gehen“, haben keinen Einfluss auf QDateTime. Obwohl die beiden Kalender Datumsangaben unterschiedlich beschreiben, werden die aufeinanderfolgenden Tage über den Wechsel hinweg durch aufeinanderfolgende QDate -Instanzen beschrieben, von denen jede einen Tag später liegt als die vorherige, wie es entweder durch den jeweiligen Kalender oder durch ihre toJulianDay()-Werte beschrieben wird. Im Gegensatz dazu ändert eine Zeitzone, die einen Tag überspringt oder doppelt zählt, ihre Zeitangabe – nicht das Datum –, auch wenn dies um ganze 24 Stunden geschieht.

Zeitverschiebungen gegenüber UTC

Abweichungen von der UTC werden in Sekunden östlich von Greenwich gemessen. Der durch ein bestimmtes Datum und eine bestimmte Uhrzeit beschriebene Zeitpunkt, wie beispielsweise Mittag an einem bestimmten Tag, hängt von der verwendeten Zeitdarstellung ab. Zeitzonen mit einer höheren Abweichung von der UTC beschreiben bei einer beliebigen Kombination aus Datum und Uhrzeit einen früheren Zeitpunkt, während solche mit einer geringeren Abweichung einen späteren Zeitpunkt beschreiben.

Es gibt keine explizite Größenbeschränkung für eine Abweichung von der UTC, jedoch ergibt sich eine implizite Begrenzung bei der Verwendung der Methoden ` toString()` und ` fromString()`, die das Format `±hh:mm` verwenden und den Bereich damit effektiv auf ±99 Stunden und 59 Minuten sowie ausschließlich ganze Minuten beschränken. Beachten Sie, dass derzeit keine Zeitzone einen Versatz außerhalb des Bereichs von ±14 Stunden aufweist und alle bekannten Versätze Vielfache von fünf Minuten sind. Historische Zeitzonen haben einen größeren Bereich und können Versätze einschließlich Sekunden aufweisen; diese lassen sich in Zeichenketten nicht originalgetreu darstellen.

Siehe auch QDate, QTime, QDateTimeEdit und QTimeZone.

Dokumentation zum Mitgliedstyp

[since 6.7] enum class QDateTime::TransitionResolution

Diese Aufzählung wird verwendet, um Datums- und Zeitkombinationen aufzulösen, die unter Timezone transitions fallen.

Beim Erstellen eines Datums- und Zeitwerts, der in Ortszeit oder einer Zeitzone mit Sommerzeit angegeben ist, oder beim Anpassen eines solchen Werts mit ` setDate()`, ` setTime()` oder ` setTimeZone()`, können die angegebenen Parameter eine Zeitdarstellung implizieren, die in der Zeitzone entweder keine Bedeutung hat oder zwei Bedeutungen aufweist. Solche Zeitdarstellungen werden als im Übergang befindlich beschrieben. In beiden Fällen können wir einfach ein ungültiges Datums- und Zeitformat zurückgeben, um anzuzeigen, dass die Operation nicht eindeutig definiert ist. Im mehrdeutigen Fall können wir alternativ einen der beiden Zeitpunkte auswählen, die gemeint sein könnten. Wenn keine Bedeutung vorliegt, können wir einen Zeitpunkt auf der einen oder anderen Seite davon auswählen, der plausibel gemeint gewesen sein könnte. Wenn wir beispielsweise von einem früheren Zeitpunkt aus vorwärts gehen, können wir den Zeitpunkt nach dem Übergang wählen, der tatsächlich der angegebenen Zeitspanne nach dem betreffenden früheren Zeitpunkt entspricht. Die hier angegebenen Optionen legen fest, wie eine solche Auswahl erfolgt.

KonstanteWertBeschreibung
QDateTime::TransitionResolution::Reject0Behandelt jeden Zeitpunkt in einem Übergang als ungültig. Entweder ist er tatsächlich ungültig oder er ist mehrdeutig.
QDateTime::TransitionResolution::RelativeToBefore1Wählt einen Zeitpunkt so aus, als würde man von einem Zeitpunkt vor dem Übergang vorwärts schreiten. Dabei wird der angeforderte Zeitpunkt unter Verwendung des vor dem Übergang geltenden Offsets interpretiert und das Ergebnis gegebenenfalls in den zum resultierenden Zeitpunkt geltenden Offset umgerechnet.
QDateTime::TransitionResolution::RelativeToAfter2Wählt einen Zeitpunkt so aus, als würde man von einem Zeitpunkt nach dem Übergang rückwärts gehen. Dabei wird der angeforderte Zeitpunkt unter Verwendung des nach dem Übergang geltenden Offsets interpretiert und das Ergebnis gegebenenfalls in den zum resultierenden Zeitpunkt geltenden Offset umgerechnet.
QDateTime::TransitionResolution::PreferBefore3Wählt einen Zeitpunkt vor dem Übergang aus,
QDateTime::TransitionResolution::PreferAfter4Wählt einen Zeitpunkt nach dem Übergang aus.
QDateTime::TransitionResolution::PreferStandard5Wählt einen Zeitpunkt auf der Seite der Standardzeit des Zeitumstellungstermins aus.
QDateTime::TransitionResolution::PreferDaylightSaving6Wählt einen Zeitpunkt auf der Sommerzeit-Seite des Übergangs aus.

Eine zusätzliche Konstante, „ LegacyBehavior “, wird in einigen Konstruktoren und Setter-Funktionen als Standardwert für „TransitionResolution“-Parameter verwendet. Dies ist ein Alias für „ RelativeToBefore “, das ein Verhalten implementiert, das dem Verhalten von „ QDateTime “ vor Qt 6.7 am ehesten entspricht.

Für ` addDays()`, ` addMonths()` oder ` addYears()` besteht das Verhalten darin – und bestand (größtenteils) darin –, ` RelativeToBefore ` zu verwenden, wenn eine positive Anpassung hinzugefügt wird, und ` RelativeToAfter `, wenn eine negative Anpassung hinzugefügt wird.

Hinweis: In Zeitzonen, in denen die Sommerzeit im Sommer den Versatz gegenüber UTC vergrößert (bekannt als „positive DST“), ist „PreferStandard“ ein Alias für „RelativeToAfter“ und „PreferDaylightSaving“ für „RelativeToBefore“. In Zeitzonen, in denen die Sommerzeit im Winter zu einer Verringerung des Offsets gegenüber UTC führt (bekannt als „negative DST“), gilt das Gegenteil, vorausgesetzt, das Betriebssystem meldet – wie es auf den meisten Plattformen der Fall ist –, ob sich ein Datums-/Zeitwert in der Sommerzeit oder in der Standardzeit befindet. Bei einigen Plattformen, bei denen selbst für Datums- und Zeitangaben vom Typ „ Qt::TimeZone “ keine Übergangsdetails verfügbar sind, muss „ QTimeZone “ davon ausgehen, dass die Seite mit dem geringeren Versatz gegenüber UTC die Standardzeit ist, was effektiv einer Annahme von positiver Sommerzeit entspricht.

Die folgenden Tabellen veranschaulichen, wie ein „ QDateTime “-Konstruktor eine Anfrage für 02:30 Uhr an einem Tag auflöst, an dem die Ortszeit zwischen 02:00 und 03:00 Uhr eine Umstellung durchläuft, wobei auf beiden Seiten eine nominelle Standardzeit (LST) und eine Sommerzeit (LDT) gilt, und zwar in den verschiedenen möglichen Fällen. Die Art des Übergangs kann darin bestehen, eine Stunde zu überspringen oder sie zu wiederholen. Die Art des Übergangs und der Wert des Parameters „ resolve “ bestimmen, welche tatsächliche Uhrzeit am angegebenen Datum ausgewählt wird. Zunächst der häufige Fall der positiven Sommerzeit, bei dem:

Vor02:00–03:00Nachresolveausgewählt
LSTüberspringenLDTRelativeToBefore03:30 LDT
LSTüberspringenLDTRelativeToAfter01:30 LST
LSTüberspringenLDTBevorzugt vor01:30 LST
LSTüberspringenLDTBevorzugt nach03:30 LDT
LSTüberspringenLDTBevorzugt: Standard01:30 LST
LSTÜberspringenLDTSommerzeit bevorzugen03:30 LDT
LDTWiederholungLSTRelativ zu vorher02:30 LDT
LDTWiederholenLSTRelativeToAfter02:30 LST
LDTWiederholungLSTBevorzugt vor02:30 LDT
LDTWiederholungLSTBevorzugt nach02:30 LST
LDTWiederholungLSTBevorzugtStandard02:30 LST
LDTWiederholungLSTBevorzugte Sommerzeit02:30 LDT

Zweitens das Argument für eine negative Sommerzeit: Im Winter wird LDT verwendet, im Sommer wird eine Stunde übersprungen, um auf LST umzustellen, und beim Wechsel zurück zum Winter wird diese Stunde wieder hinzugefügt:

LDTüberspringenLSTIm Vergleich zu vorher03:30 LST
LDTüberspringenLSTRelativ zu danach01:30 LDT
LDTüberspringenLSTBevorzugt vor01:30 LDT
LDTüberspringenLSTBevorzugt nach03:30 LST
LDTüberspringenLSTBevorzugt Standard03:30 LST
LDTüberspringenLSTSommerzeit bevorzugen01:30 LDT
LSTWiederholenLDTRelativ zu vorher02:30 LST
LSTwiederholenLDTRelativ zu danach02:30 LDT
LSTWiederholungLDTBevorzugt vor02:30 LST
LSTWiederholungLDTBevorzugt nach02:30 LDT
LSTWiederholungLDTBevorzugt: Standard02:30 LST
LSTWiederholungLDTSommerzeit bevorzugen02:30 LDT

Mit „Reject“ können relevante QDateTime -APIs dazu veranlasst werden, ein ungültiges Datetime-Objekt zurückzugeben, sodass Ihr Code Übergänge selbst verarbeiten kann – beispielsweise indem er einen Benutzer darauf hinweist, dass die von ihm ausgewählte Datums- und Uhrzeitangabe in einem Übergangszeitraum liegt, um ihm die Möglichkeit zu geben, einen Konflikt oder eine Unklarheit zu beheben. Code, der diese Funktion nutzt, kann die oben genannten Optionen durchaus als hilfreich erweisen, um relevante Informationen für die eigene (oder die des Benutzers) Zeitumstellung zu ermitteln. Wenn der Beginn oder das Ende der Zeitumstellung oder der Zeitpunkt der Zeitumstellung selbst die richtige Lösung darstellt, können die Zeitumstellungs-APIs von QTimeZone genutzt werden, um diese Informationen zu erhalten. Sie können feststellen, ob es sich bei dem Übergang um ein wiederholtes oder ein übersprungenes Intervall handelt, indem Sie mit ` secsTo()` die tatsächliche Zeit zwischen 12 Uhr mittags des vorherigen und des folgenden Tages messen. Das Ergebnis beträgt bei einem übersprungenen Intervall (z. B. einer Zeitumstellung im Frühjahr) weniger als 48 Stunden und bei einem wiederholten Intervall (z. B. einer Zeitumstellung im Herbst) mehr als 48 Stunden.

Hinweis: Wenn eine andere Auflösung als „Reject“ angegeben wird, wird nach Möglichkeit ein gültiges ` QDateTime `-Objekt zurückgegeben. Fällt das angeforderte Datum und die Uhrzeit in eine Lücke, enthält das zurückgegebene Datum und die Uhrzeit nicht den angeforderten ` time()` – oder in einigen Fällen den ` date()`, wenn ein ganzer Tag übersprungen wurde. Sie können daher erkennen, ob eine Lücke vorliegt, indem Sie „ date()“ und „ time()“ mit den angeforderten Werten vergleichen.

Bezug zu anderer Datums- und Uhrzeit-Software

Die Datetime-APIs der Programmiersprache Python verfügen über einen Parameter „ fold “, der den Methoden „ RelativeToBefore “ (fold = True) und „ RelativeToAfter “ (fold = False) entspricht.

Der Vorschlag „ Temporal “, der „ Date “ in JavaScript ersetzen soll, bietet vier Optionen für die Auflösung eines Übergangs als Wert für den Parameter „ disambiguation “. Die Option „ 'reject' “ löst eine Ausnahme aus, was in etwa dem ungültigen Ergebnis von „ Reject “ entspricht. Die Optionen „ 'earlier' “ und „ 'later' “ entsprechen „ PreferBefore “ und „ PreferAfter “. Die Option „ 'compatible' “ entspricht „ RelativeToBefore “ (und „ fold = True “ in Python).

Diese Enumeration wurde in Qt 6.7 eingeführt.

Siehe auch Timezone transitions.

enum class QDateTime::YearRange

Dieser Aufzählungstyp beschreibt den Bereich von Jahren (im gregorianischen Kalender), der durch „ QDateTime “ dargestellt werden kann:

KonstanteWertBeschreibung
QDateTime::YearRange::First-292275056Die späteren Teile dieses Jahres sind darstellbar
QDateTime::YearRange::Last+292278994Die früheren Teile dieses Jahres sind darstellbar

Die genauen ersten und letzten darstellbaren Datums- und Zeitangaben liegen innerhalb dieser Jahre und hängen von der verwendeten Funktion ` timeRepresentation()` ab. Sie lassen sich ermitteln, indem geeignete Werte an die Funktion ` fromMSecsSinceEpoch()` übergeben werden.

Alle Datumsangaben, die streng zwischen diesen beiden Jahren liegen, sind ebenfalls darstellbar. Beachten Sie jedoch, dass der Gregorianische Kalender kein Jahr Null kennt.

Hinweis: Mit ` QDate ` lassen sich Datumsangaben in einem größeren Jahresbereich beschreiben. Für die meisten Zwecke macht dies jedoch kaum einen Unterschied, da der von ` QDateTime ` unterstützte Jahresbereich 292 Millionen Jahre vor und nach 1970 umfasst.

Siehe auch isValid() und QDate.

Dokumentation der Member-Funktionen

QDateTime::QDateTime(QDate date, QTime time, const QTimeZone &timeZone, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior)

Erstellt ein Datums- und Zeitobjekt mit den angegebenen Werten „ date “ und „ time “ unter Verwendung der unter timeZone beschriebenen Zeitdarstellung.

Wenn „ date “ gültig ist und „ time “ nicht, wird die Uhrzeit auf Mitternacht gesetzt. Ist „ timeZone “ ungültig, ist das Datetime-Objekt ungültig. Beschreiben „ date “ und „ time “ einen Zeitpunkt nahe einem Übergang für „ timeZone “, steuert „ resolve “, wie diese Situation aufgelöst wird.

Hinweis: Vor Qt 6.7 fehlte in der Version dieser Funktion der Parameter „ resolve “, sodass es keine Möglichkeit gab, die mit Übergängen verbundenen Mehrdeutigkeiten aufzulösen.

[noexcept] QDateTime::QDateTime()

Erzeugt ein Null-Datums-/Zeitformat, wobei nominell die Ortszeit verwendet wird.

Ein Null-Datums- und -Zeitwert ist ungültig, da sein Datum und seine Uhrzeit ungültig sind.

Siehe auch isValid(), setMSecsSinceEpoch(), setDate(), setTime() und setTimeZone().

[since 6.5] QDateTime::QDateTime(QDate date, QTime time, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior)

Erstellt ein Datums- und Zeitobjekt mit den angegebenen Werten „ date “ und „ time “ unter Verwendung der Ortszeit.

Wenn „ date “ gültig ist und „ time “ nicht, wird Mitternacht als Zeitpunkt verwendet. Wenn „ date “ und „ time “ einen Zeitpunkt beschreiben, der nahe an einem Übergang der Ortszeit liegt, steuert „ resolve “, wie diese Situation aufgelöst wird.

Hinweis: Vor Qt 6.7 fehlte in der Version dieser Funktion der Parameter „ resolve “, sodass es keine Möglichkeit gab, die mit Übergängen verbundenen Mehrdeutigkeiten aufzulösen.

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.5 eingeführt.

[noexcept] QDateTime::QDateTime(const QDateTime &other)

Erstellt eine Kopie des Datums- und Zeitwerts „ other “.

[noexcept] QDateTime::QDateTime(QDateTime &&other)

Verschiebt den Inhalt des temporären Datums- und Zeitobjekts „ other “ in dieses Objekt und versetzt „ other “ in einen nicht näher bezeichneten (aber korrekten) Zustand.

[noexcept] QDateTime::~QDateTime()

Löscht das Datums- und Zeitangabe-Objekt.

QDateTime QDateTime::addDays(qint64 ndays) const

Gibt ein „ QDateTime “-Objekt zurück, das ein Datums- und Zeitangabe-Objekt („datetime“ ndays ) enthält, das so viele Tage später liegt als die Datums- und Zeitangabe dieses Objekts (oder früher, wenn „ ndays “ negativ ist).

Wenn „ timeSpec()“ auf „ Qt::LocalTime “ oder „ Qt::TimeZone “ gesetzt ist und das resultierende Datum und die Uhrzeit in die Stunde des Übergangs von Standardzeit zu Sommerzeit fallen, liegt das Ergebnis knapp jenseits dieser Lücke in Richtung der Zeitumstellung. Wenn die Umstellung um 2 Uhr morgens erfolgt und die Uhr auf 3 Uhr morgens vorgestellt wird, wird das Ergebnis einer Zielzeit zwischen 2 und 3 Uhr morgens so angepasst, dass es vor 2 Uhr morgens (wenn ndays < 0) oder nach 3 Uhr morgens (ansonsten) liegt.

Siehe auch daysTo(), addMonths(), addYears(), addSecs() und Timezone transitions.

[since 6.4] QDateTime QDateTime::addDuration(std::chrono::milliseconds msecs) const

Gibt ein „ QDateTime “-Objekt zurück, das ein Datums- und Zeit msecs enthält, das um die angegebene Anzahl an Millisekunden nach dem Datums- und Zeit dieses Objekts liegt (oder früher, falls „ msecs “ negativ ist).

Ist dieser Zeitpunkt ungültig, wird ein ungültiger Zeitpunkt zurückgegeben.

Hinweis: Das Addieren von Zeiträumen, die in „ std::chrono::months “ oder „ std::chrono::years “ ausgedrückt sind, führt nicht zu demselben Ergebnis wie bei der Verwendung von „ addMonths()“ oder „ addYears()“. Bei den erstgenannten handelt es sich um feste Zeiträume, die in Bezug auf das Sonnenjahr berechnet werden; die letztgenannten verwenden die Definitionen von Monaten und Jahren des gregorianischen Kalenders.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch addMSecs(), msecsTo(), addDays(), addMonths() und addYears().

QDateTime QDateTime::addMSecs(qint64 msecs) const

Gibt ein „ QDateTime “-Objekt zurück, das ein Datums- und Zeit msecs enthält, das um die angegebene Anzahl an Millisekunden nach dem Datums- und Zeit dieses Objekts liegt (oder früher, falls „ msecs “ negativ ist).

Ist dieser Zeitpunkt ungültig, wird ein ungültiger Zeitpunkt zurückgegeben.

Siehe auch addSecs(), msecsTo(), addDays(), addMonths() und addYears().

QDateTime QDateTime::addMonths(int nmonths) const

Gibt ein „ QDateTime “-Objekt zurück, das ein Datums- und Zeit nmonths enthält, das Monate nach dem Datums- und Zeit dieses Objekts liegt (oder früher, wenn „ nmonths “ negativ ist).

Wenn „ timeSpec()“ auf „ Qt::LocalTime “ oder „ Qt::TimeZone “ gesetzt ist und das resultierende Datum und die Uhrzeit in die Stunde des Übergangs von Standardzeit zu Sommerzeit fallen, liegt das Ergebnis knapp jenseits dieser Lücke in Richtung der Zeitumstellung. Wenn die Umstellung um 2 Uhr morgens erfolgt und die Uhr auf 3 Uhr morgens vorgestellt wird, wird das Ergebnis einer Zielangabe zwischen 2 und 3 Uhr morgens so angepasst, dass es vor 2 Uhr morgens (wenn „ nmonths < 0 “) oder nach 3 Uhr morgens (ansonsten) liegt.

Siehe auch daysTo(), addDays(), addYears(), addSecs() und Timezone transitions.

QDateTime QDateTime::addSecs(qint64 s) const

Gibt ein „ QDateTime “-Objekt zurück, das ein Datums- und Zeit s -Objekt enthält, das Sekunden nach dem Datums- und Zeit dieses Objekts liegt (oder früher, wenn „ s “ negativ ist).

Ist dieser Zeitpunkt ungültig, wird ein ungültiger Zeitpunkt zurückgegeben.

Siehe auch addMSecs(), secsTo(), addDays(), addMonths() und addYears().

QDateTime QDateTime::addYears(int nyears) const

Gibt ein ` QDateTime `-Objekt zurück, das ein `datetime`- nyears enthält, das Jahre später liegt als der `datetime`-Wert dieses Objekts (oder früher, falls ` nyears ` negativ ist).

Wenn „ timeSpec()“ auf „ Qt::LocalTime “ oder „ Qt::TimeZone “ gesetzt ist und das resultierende Datum und die Uhrzeit in die Stunde des Übergangs von Standardzeit zu Sommerzeit fallen, liegt das Ergebnis knapp jenseits dieser Lücke in Richtung der Zeitumstellung. Wenn die Umstellung um 2 Uhr morgens erfolgt und die Uhr auf 3 Uhr morgens vorgestellt wird, wird das Ergebnis einer Zielangabe zwischen 2 Uhr und 3 Uhr morgens so angepasst, dass es vor 2 Uhr morgens (wenn nyears < 0) oder nach 3 Uhr morgens (ansonsten) liegt.

Siehe auch daysTo(), addDays(), addMonths(), addSecs() und Timezone transitions.

[static, since 6.5] QDateTime QDateTime::currentDateTime(const QTimeZone &zone)

Gibt das aktuelle Datum und die aktuelle Uhrzeit der Systemuhr zurück, wobei die unter zone beschriebene Zeitdarstellung verwendet wird. Wird zone weggelassen, wird die Ortszeit verwendet.

Diese Funktion wurde in Qt 6.5 eingeführt.

Siehe auch currentDateTimeUtc(), QDate::currentDate(), QTime::currentTime() und toTimeZone().

[static] QDateTime QDateTime::currentDateTime()

Diese Funktion überlädt die Funktion „ QDateTime::currentDateTime()“.

[static] QDateTime QDateTime::currentDateTimeUtc()

Gibt das aktuelle Datum und die aktuelle Uhrzeit der Systemuhr zurück, ausgedrückt in UTC.

Entspricht ` currentDateTime(QTimeZone::UTC)`.

Siehe auch currentDateTime(), QDate::currentDate(), QTime::currentTime() und toTimeZone().

[static noexcept] qint64 QDateTime::currentMSecsSinceEpoch()

Gibt die aktuelle Anzahl an Millisekunden seit dem Beginn des Jahres 1970 in UTC zurück.

Diese Zahl entspricht der POSIX-Variablen `time_t`, wird jedoch in Millisekunden statt in Sekunden angegeben.

Siehe auch currentDateTime(), currentDateTimeUtc() und toTimeZone().

[static noexcept] qint64 QDateTime::currentSecsSinceEpoch()

Gibt die Anzahl der Sekunden seit dem Beginn des Jahres 1970 in UTC zurück.

Diese Zahl entspricht der POSIX-Variablen `time_t`.

Siehe auch ` currentMSecsSinceEpoch()`.

QDate QDateTime::date() const

Gibt den Datumsanteil des Datums- und Zeitwerts zurück.

Siehe auch setDate(), time() und timeRepresentation().

qint64 QDateTime::daysTo(const QDateTime &other) const

Gibt die Anzahl der Tage von diesem Datums- und Zeitwert bis zum Datums- und Zeitwert „ other “ zurück.

Die Anzahl der Tage wird als die Anzahl der Male gezählt, die zwischen diesem Zeitpunkt und dem Zeitpunkt „ other “ Mitternacht erreicht wird. Das bedeutet, dass eine Differenz von 10 Minuten zwischen 23:55 Uhr und 0:05 Uhr des nächsten Tages als ein Tag zählt.

Liegt der Zeitpunkt „ other “ vor diesem Zeitpunkt, ist der zurückgegebene Wert negativ. Ist einer der beiden Zeitpunkte ungültig, ist der Wert 0.

Beispiel:

QDateTime startDate(QDate(2012, 7, 6), QTime(8, 30, 0));
QDateTime endDate(QDate(2012, 7, 7), QTime(16, 30, 0));
qDebug() << "Days from startDate to endDate: " << startDate.daysTo(endDate);

startDate = QDateTime(QDate(2012, 7, 6), QTime(23, 55, 0));
endDate = QDateTime(QDate(2012, 7, 7), QTime(0, 5, 0));
qDebug() << "Days from startDate to endDate: " << startDate.daysTo(endDate);

qSwap(startDate, endDate); // Make endDate before startDate.
qDebug() << "Days from startDate to endDate: " << startDate.daysTo(endDate);

Siehe auch addDays(), secsTo() und msecsTo().

[static] QDateTime QDateTime::fromCFDate(CFDateRef date)

Erstellt ein neues ` QDateTime `-Objekt, das eine Kopie des `CFDate`-Objekts date enthält.

Siehe auch toCFDate().

[static] QDateTime QDateTime::fromMSecsSinceEpoch(qint64 msecs, const QTimeZone &timeZone)

Gibt ein Datums- und Zeitformat zurück, das einen Zeitpunkt darstellt, der der angegebenen Anzahl von Millisekunden msecs nach dem Beginn des Jahres 1970 in UTC entspricht, wie unter timeZone beschrieben. Die Standardzeitdarstellung ist die Ortszeit.

Beachten Sie, dass es mögliche Werte für ` msecs ` gibt, die außerhalb des gültigen Bereichs von ` QDateTime` liegen, sowohl negative als auch positive. Das Verhalten dieser Funktion ist für diese Werte undefiniert.

Siehe auch fromSecsSinceEpoch(), toMSecsSinceEpoch() und setMSecsSinceEpoch().

[static] QDateTime QDateTime::fromMSecsSinceEpoch(qint64 msecs)

Diese Funktion überlädt die Methode „ QDateTime::fromMSecsSinceEpoch()“.

[static] QDateTime QDateTime::fromNSDate(const NSDate *date)

Erstellt ein neues ` QDateTime `, das eine Kopie des `NSDate`-Objekts ` date` enthält.

Siehe auch toNSDate().

[static] QDateTime QDateTime::fromSecsSinceEpoch(qint64 secs, const QTimeZone &timeZone)

Gibt einen Datums- und Zeitwert zurück, der einen Zeitpunkt darstellt, der der angegebenen Anzahl von Sekunden secs nach dem Beginn des Jahres 1970 in UTC entspricht, wie unter timeZone beschrieben. Die Standardzeitdarstellung ist die Ortszeit.

Beachten Sie, dass es mögliche Werte für ` secs ` gibt, die außerhalb des gültigen Bereichs von ` QDateTime` liegen, sowohl negative als auch positive. Das Verhalten dieser Funktion ist für diese Werte undefiniert.

Siehe auch fromMSecsSinceEpoch(), toSecsSinceEpoch() und setSecsSinceEpoch().

[static] QDateTime QDateTime::fromSecsSinceEpoch(qint64 secs)

Diese Funktion überlädt die Funktion „ QDateTime::fromSecsSinceEpoch()“.

[static, since 6.4] QDateTime QDateTime::fromStdLocalTime(const std::chrono::local_time<std::chrono::milliseconds> &time)

Erzeugt ein Datums- und Zeitobjekt, dessen Datum und Uhrzeit der Anzahl der Millisekunden entsprechen, die durch time dargestellt werden, gezählt ab dem 01.01.1970 00:00:00.000 in Ortszeit (Qt::LocalTime).

Hinweis: Diese Funktion erfordert C++20.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch ` toStdSysMilliseconds()` und ` fromMSecsSinceEpoch()`.

[static, since 6.4] template <typename Clock, typename Duration> QDateTime QDateTime::fromStdTimePoint(const std::chrono::time_point<Clock, Duration> &time) requires requires(const std::chrono::time_point<Clock, Duration> &t) { // the clock can be converted to system_clock std::chrono::clock_cast<std::chrono::system_clock>(t); // after the conversion to system_clock, the duration type // we get is convertible to milliseconds requires std::is_convertible_v< system_clock_cast_duration<Clock, Duration>, std::chrono::milliseconds >; }

Erzeugt ein Datums- und Zeitobjekt, das denselben Zeitpunkt wie time darstellt, wobei Qt::UTC als Zeitdarstellung verwendet wird.

Die Uhr von time muss mit std::chrono::system_clock kompatibel sein; insbesondere muss eine von std::chrono::clock_cast unterstützte Konvertierung vorhanden sein. Nach der Konvertierung muss der Dauer-Typ des Ergebnisses in std::chrono::milliseconds konvertierbar sein.

Ist dies nicht der Fall, muss der Aufrufer die erforderliche Uhrzeitkonvertierung in Richtung std::chrono::system_clock sowie die erforderliche Konvertierung des Dauer-Typs (Cast/Round/Floor/Ceil/...) durchführen, damit die Eingabe für diese Funktion die oben genannten Einschränkungen erfüllt.

Hinweis: Diese Funktion erfordert C++20.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch ` toStdSysMilliseconds()` und ` fromMSecsSinceEpoch()`.

[static, since 6.4] QDateTime QDateTime::fromStdTimePoint(const std::chrono::local_time<std::chrono::milliseconds> &time)

Erzeugt ein Datums- und Zeitobjekt, dessen Datum und Uhrzeit der Anzahl der Millisekunden entsprechen, die durch time dargestellt werden, gezählt ab dem 01.01.1970 00:00:00.000 in Ortszeit (Qt::LocalTime).

Hinweis: Diese Funktion erfordert C++20.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch ` toStdSysMilliseconds()` und ` fromMSecsSinceEpoch()`.

[static, since 6.4] QDateTime QDateTime::fromStdTimePoint(std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds> time)

Erzeugt ein Datums- und Zeitobjekt, das denselben Zeitpunkt wie ` time` darstellt, wobei ` Qt::UTC ` als Zeitdarstellung verwendet wird.

Diese Funktion überlädt ` QDateTime::fromStdTimePoint()`.

Diese Funktion wurde in Qt 6.4 eingeführt.

[static, since 6.4] QDateTime QDateTime::fromStdZonedTime(const std::chrono::zoned_time<std::chrono::milliseconds, const std::chrono::time_zone *> &time)

Erzeugt ein Datums- und Zeitobjekt, das denselben Zeitpunkt wie time darstellt. Das Ergebnis wird in der Zeitzone von time angegeben.

Hinweis: Diese Funktion erfordert C++20.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch QTimeZone, toStdSysMilliseconds() und fromMSecsSinceEpoch().

[static] QDateTime QDateTime::fromString(const QString &string, const QString &format, int baseYear, QCalendar cal)

Gibt den durch die Zeichenfolge „ string “ dargestellten Kalender „ QDateTime “ unter Verwendung des angegebenen Datumsformats „ format “ zurück oder eine ungültige Datums- und Uhrzeitangabe, falls die Zeichenfolge nicht geparst werden kann.

Verwendet den Kalender cal, falls angegeben, andernfalls den gregorianischen Kalender.

Wenn „ format “ nur die letzten beiden Ziffern eines Jahres angibt, werden zunächst die 100 Jahre, beginnend mit „ baseYear “, als Kandidaten berücksichtigt. Vor Version 6.7 gab es keinen Parameter „ baseYear “ und es wurde immer das Jahr 1900 verwendet. Dies ist die Standardeinstellung für „ baseYear “, wobei ein Jahr zwischen diesem Zeitpunkt und 1999 ausgewählt wird. In einigen Fällen können andere Felder dazu führen, dass das nächste oder vorherige Jahrhundert ausgewählt wird, um ein Ergebnis zu erhalten, das mit allen angegebenen Feldern konsistent ist. Weitere Informationen finden Sie unter „ QDate::fromString()“.

Zusätzlich zu den Ausdrücken, die in der Formatzeichenfolge zur Darstellung von Teilen des Datums und der Uhrzeit von QDate::fromString() und QTime::fromString() erkannt werden, unterstützt diese Methode:

AusdruckAusgabe
tdie Zeitzone (Offset, Name, „Z“ oder Offset mit dem Präfix „UTC“)
ttdie Zeitzone im Offset-Format ohne Doppelpunkt zwischen Stunden und Minuten (zum Beispiel „+0200“)
tttdie Zeitzone im Offset-Format mit einem Doppelpunkt zwischen Stunden und Minuten (z. B. „+02:00“)
ttttder Name der Zeitzone, entweder der Wert, den QTimeZone::displayName() für QTimeZone::LongName zurückgibt, oder die IANA-ID der Zone (z. B. „Europe/Berlin“). Es werden die Namen erkannt, die unter QTimeZone aufgeführt sind; diese können vom verwendeten Betriebssystem abhängen.

Wenn kein Formatbezeichner „t“ vorhanden ist, wird die lokale Zeitzone des Systems verwendet. Die Standardwerte aller anderen Felder finden Sie unter QDate::fromString() und QTime::fromString().

Beispiel:

QDateTime dateTime = QDateTime::fromString("1.30.1", "M.d.s");
// dateTime is January 30 in 1900 at 00:00:01.
dateTime = QDateTime::fromString("12", "yy");
// dateTime is January 1 in 1912 at 00:00:00.

Jede nicht leere Zeichenfolge, die in einfache Anführungszeichen eingeschlossen ist, wird ebenfalls (ohne die Anführungszeichen) als Text behandelt und nicht als Ausdruck interpretiert. Zwei aufeinanderfolgende einfache Anführungszeichen („''“) werden als ein einfaches Anführungszeichen interpretiert, das in der Eingabe gefunden werden soll, und nicht als Beginn oder Ende einer wörtlichen Sequenz. Alle anderen Eingabezeichen werden als wörtlicher Text behandelt, der in der Eingabezeichenfolge gefunden werden soll. Beispiel:

QTime time1 = QTime::fromString("131", "HHh");
// time1 is 13:00:00
QTime time2 = QTime::fromString("1apA", "1amAM");
// time2 is 01:00:00

QDateTime dateTime2 = QDateTime::fromString("M1d1y9800:01:02",
                                            "'M'M'd'd'y'yyhh:mm:ss");
// dateTime is 1 January 1998 00:01:02

Wird das Format nicht eingehalten, wird ein ungültiger „ QDateTime “ zurückgegeben.

Wenn numerische Felder nebeneinander stehen und keine Trennzeichen vorhanden sind, um die Ziffernfolgen voneinander zu trennen, kann es zu Unklarheiten kommen, ob einige Felder, die einstellig sein dürfen, zwei Ziffern verwenden (da der darzustellende Wert größer als 9 ist). Wenn die Zuweisung von zwei Ziffern zu einem solchen Feld zu wenige Ziffern für andere Felder übrig lassen würde und die einstellige Lesart mit anderen Feldern übereinstimmt, kann diese Mehrdeutigkeit aufgelöst werden. Andernfalls (wenn mehr als ein Feld nur eine Ziffer haben darf und Ziffern übrig blieben, wenn jedes Feld nur eine Ziffer bekäme) wird eine Lösung bevorzugt, bei der den früheren Feldern zusätzliche Ziffern zugewiesen werden, anstatt den späteren Feldern, vorausgesetzt, die Daten bleiben konsistent. Zum Beispiel:

Die Ausdrücke ohne führende Nullen (d, M, h, m, s, z) verhalten sich „gierig“. Das bedeutet, dass sie zwei Stellen (bzw. drei im Fall von z) belegen, selbst wenn sie dadurch den zulässigen Bereich überschreiten und/oder zu wenige Stellen für andere Abschnitte übrig bleiben.

QDateTime dateTime = QDateTime::fromString("130", "Mm"); // January, 30 mins

Dies hätte 1. Januar 00:30.00 bedeuten können, aber das Feld „M“ beansprucht zwei Stellen.

Falsch angegebene Felder der „ string “ führen dazu, dass ein ungültiges „ QDateTime “ zurückgegeben wird. Es werden nur Datums- und Zeitangaben zwischen dem lokalen Jahresanfang 100 und dem Jahresende 9999 unterstützt. Beachten Sie, dass Datums- und Zeitangaben nahe den Grenzen dieses Bereichs in anderen Zeitzonen, insbesondere einschließlich UTC, je nach lokaler Zeitzone außerhalb des Bereichs liegen können (und somit als ungültig behandelt werden).

Hinweis: Tages- und Monatsnamen sowie AM/PM-Angaben müssen in Englisch (C-Locale) angegeben werden. Wenn lokalisierte Monats- und Tagesnamen oder lokalisierte Formen von AM/PM erkannt werden sollen, verwenden Sie ` QLocale::system()`.toDateTime().

Hinweis: Wenn ein Formatzeichen öfter wiederholt wird als der längste Ausdruck in der obigen Tabelle, der es verwendet, wird dieser Teil des Formats als mehrere Ausdrücke ohne Trennzeichen zwischen ihnen gelesen; dabei gilt der längste der oben genannten Ausdrücke, der möglicherweise so oft wiederholt wird, wie es Kopien davon gibt, und mit einem Rest endet, der ein kürzerer Ausdruck sein kann. Somit würde 'tttttt' mit "Europe/BerlinEurope/Berlin" übereinstimmen und die Zeitzone auf Berliner Zeit setzen; enthielte die Datums- und Zeitzeichenfolge „Europe/BerlinZ“, würde zwar eine „Übereinstimmung“ vorliegen, jedoch ein inkonsistentes Ergebnis liefern, was zu einer ungültigen Datums- und Zeitangabe führen würde.

Siehe auch toString(), QDate::fromString(), QTime::fromString() und QLocale::toDateTime().

[static, since 6.0] QDateTime QDateTime::fromString(QStringView string, Qt::DateFormat format = Qt::TextDate)

Diese Funktion überlädt die Funktion „ QDateTime::fromString()“.

Diese Funktion wurde in Qt 6.0 eingeführt.

[static] QDateTime QDateTime::fromString(const QString &string, Qt::DateFormat format = Qt::TextDate)

Gibt die durch „ string “ dargestellte „ QDateTime “ unter Verwendung der angegebenen „ format “ zurück oder, falls dies nicht möglich ist, ein ungültiges Datums- und Zeitformat.

Hinweis zu „ Qt::TextDate “: Es werden nur englische Kurzbezeichnungen für Monate (z. B. „Jan“ in der Kurzform oder „January“ in der Langform) erkannt.

Dies ist eine überladene Funktion.

Siehe auch „ toString()“ und „ QLocale::toDateTime()“.

[static, since 6.0] QDateTime QDateTime::fromString(QStringView string, QStringView format, QCalendar cal)

Diese Funktion überlädt die Funktion „ QDateTime::fromString()“.

Diese Funktion wurde in Qt 6.0 eingeführt.

[static, since 6.7] QDateTime QDateTime::fromString(QStringView string, QStringView format, int baseYear = QLocale::DefaultTwoDigitBaseYear)

Verwendet ein standardmäßig konstruiertes ` QCalendar`.

Diese Funktion überlädt ` QDateTime::fromString()`.

Diese Funktion wurde in Qt 6.7 eingeführt.

[static, since 6.0] QDateTime QDateTime::fromString(const QString &string, QStringView format, QCalendar cal)

Diese Funktion überlädt die Funktion ` QDateTime::fromString()`.

Diese Funktion wurde in Qt 6.0 eingeführt.

[static, since 6.7] QDateTime QDateTime::fromString(const QString &string, QStringView format, int baseYear = QLocale::DefaultTwoDigitBaseYear)

Verwendet ein standardmäßig initialisiertes ` QCalendar`.

Diese Funktion überlädt ` QDateTime::fromString()`.

Diese Funktion wurde in Qt 6.7 eingeführt.

[static] QDateTime QDateTime::fromString(const QString &string, const QString &format, QCalendar cal)

Diese Funktion überlädt die Funktion „ QDateTime::fromString()“.

[static, since 6.7] QDateTime QDateTime::fromString(const QString &string, const QString &format, int baseYear = QLocale::DefaultTwoDigitBaseYear)

Verwendet ein standardmäßig konstruiertes ` QCalendar`.

Diese Funktion überlädt ` QDateTime::fromString()`.

Diese Funktion wurde in Qt 6.7 eingeführt.

[static, since 6.7] QDateTime QDateTime::fromString(QStringView string, QStringView format, int baseYear, QCalendar cal)

Diese Funktion überlädt die Funktion „ QDateTime::fromString()“.

Diese Funktion wurde in Qt 6.7 eingeführt.

[static, since 6.0] QDateTime QDateTime::fromString(const QString &string, QStringView format, int baseYear, QCalendar cal)

Diese Funktion überlädt die Funktion „ QDateTime::fromString()“.

Diese Funktion wurde in Qt 6.0 eingeführt.

bool QDateTime::isDaylightTime() const

Gibt zurück, ob dieses Datums- und Zeitangabe in die Sommerzeit fällt.

Wenn der „ Qt::TimeSpec “ nicht „ Qt::LocalTime “ oder „ Qt::TimeZone “ ist, wird immer „false“ zurückgegeben.

Siehe auch timeSpec().

bool QDateTime::isNull() const

Gibt „ true “ zurück, wenn sowohl das Datum als auch die Uhrzeit null sind; andernfalls wird „ false “ zurückgegeben. Ein null-Datum/Uhrzeit-Wert ist ungültig.

Siehe auch QDate::isNull(), QTime::isNull() und isValid().

bool QDateTime::isValid() const

Gibt „ true “ zurück, wenn dieses Datums- und Zeitangabe einen bestimmten Zeitpunkt darstellt, andernfalls „ false “.

Ein Datums- und Zeitwert ist gültig, wenn sowohl das Datum als auch die Uhrzeit gültig sind und die verwendete Zeitdarstellung ihrer Kombination eine gültige Bedeutung verleiht. Wenn es sich bei der Zeitdarstellung um eine bestimmte Zeitzone oder Ortszeit handelt, kann es an manchen Tagen vorkommen, dass die Zeitzone in ihrer Darstellung bestimmte Zeitpunkte überspringt, beispielsweise wenn bei der Umstellung auf Sommerzeit eine Stunde übersprungen wird (typischerweise während einer Nacht im Frühjahr). Wenn beispielsweise die Sommerzeit um 2:00 Uhr endet und die Uhr auf 3:00 Uhr vorgestellt wird, sind Datums- und Zeitangaben von 02:00:00 bis 02:59:59,999 an diesem Tag ungültig.

Siehe auch QDateTime::YearRange, QDate::isValid() und QTime::isValid().

qint64 QDateTime::msecsTo(const QDateTime &other) const

Gibt die Anzahl der Millisekunden zwischen diesem Datums-/Zeitwert und dem Datums-/Zeitwert „ other “ zurück.

Vor dem Vergleich werden die beiden Datums- und Zeitangaben in „ Qt::UTC “ umgewandelt, um sicherzustellen, dass das Ergebnis korrekt ist, falls für eine der beiden Datums- und Zeitangaben die Sommerzeit (DST) gilt, für die andere jedoch nicht.

Wenn der Datums- und Zeitwert „ other “ vor diesem Datums- und Zeitwert liegt, ist der zurückgegebene Wert negativ. Gibt 0 zurück, wenn einer der beiden Datums- und Zeitwerte ungültig ist.

Siehe auch addMSecs(), daysTo() und QTime::msecsTo().

int QDateTime::offsetFromUtc() const

Gibt den Offset dieses Datums- und Zeitwerts gegenüber UTC in Sekunden zurück.

Das Ergebnis hängt von ` timeSpec()` ab:

  • Qt::UTC Der Offset beträgt 0.
  • Qt::OffsetFromUTC Der Offset entspricht dem ursprünglich festgelegten Wert.
  • Qt::LocalTime Der Offset der Ortszeit gegenüber UTC wird zurückgegeben.
  • Qt::TimeZone Der von der Zeitzone verwendete Versatz wird zurückgegeben.

Bei den letzten beiden Fällen wird der Offset zum aktuellen Datum und zur aktuellen Uhrzeit unter Berücksichtigung der Sommerzeit-Verschiebung zurückgegeben. Der Offset ist die Differenz zwischen der Ortszeit oder der Zeit in der angegebenen Zeitzone und der UTC-Zeit; er ist positiv in Zeitzonen, die vor der UTC liegen (östlich des Nullmeridians), und negativ in Zeitzonen, die hinter der UTC liegen (westlich des Nullmeridians).

Siehe auch setTimeZone().

qint64 QDateTime::secsTo(const QDateTime &other) const

Gibt die Anzahl der Sekunden zwischen diesem Datums- und Zeitwert und dem Datums- und Zeitwert „ other “ zurück.

Vor dem Vergleich werden die beiden Datums- und Zeitangaben in „ Qt::UTC “ umgewandelt, um sicherzustellen, dass das Ergebnis korrekt ist, falls für eine der beiden Datums- und Zeitangaben die Sommerzeit (DST) gilt, für die andere jedoch nicht.

Wenn der Zeitpunkt „ other “ vor diesem Zeitpunkt liegt, ist der zurückgegebene Wert negativ. Es wird 0 zurückgegeben, wenn einer der beiden Zeitpunkte ungültig ist.

Beispiel:

QDateTime now = QDateTime::currentDateTime();
QDateTime xmas(QDate(now.date().year(), 12, 25).startOfDay());
qDebug("There are %d seconds to Christmas", now.secsTo(xmas));

Siehe auch addSecs(), daysTo() und QTime::secsTo().

void QDateTime::setDate(QDate date, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior)

Setzt den Datumsanteil dieses Datums- und Zeitwerts auf „ date “.

Wenn noch keine Uhrzeit festgelegt ist, wird diese auf Mitternacht gesetzt. Ist date ungültig, wird diese QDateTime ungültig.

Wenn „ date “ und „ time()“ einen Zeitpunkt beschreiben, der nahe an einem Übergang in der Zeitdarstellung dieses Datums- und Zeitwerts liegt, steuert „ resolve “, wie diese Situation aufgelöst wird.

Hinweis: Vor Qt 6.7 fehlte in der Version dieser Funktion der Parameter „ resolve “, sodass es keine Möglichkeit gab, die mit Übergängen verbundenen Mehrdeutigkeiten aufzulösen.

Siehe auch date(), setTime() und setTimeZone().

void QDateTime::setMSecsSinceEpoch(qint64 msecs)

Legt das Datums- und Zeitformat so fest, dass es einen Zeitpunkt darstellt, der eine bestimmte Anzahl von Millisekunden ( msecs) nach dem Beginn des Jahres 1970 in UTC liegt.

Auf Systemen, die keine Zeitzonen unterstützen, verhält sich diese Funktion so, als ob die Ortszeit Qt::UTC wäre.

Beachten Sie, dass die Übergabe des Minimums von qint64 (std::numeric_limits<qint64>::min()) an msecs zu undefiniertem Verhalten führt.

Siehe auch setSecsSinceEpoch(), toMSecsSinceEpoch() und fromMSecsSinceEpoch().

void QDateTime::setSecsSinceEpoch(qint64 secs)

Legt das Datums- und Zeitformat so fest, dass es einen Zeitpunkt darstellt, der eine bestimmte Anzahl von Sekunden ( secs) nach dem Beginn des Jahres 1970 in UTC liegt.

Auf Systemen, die keine Zeitzonen unterstützen, verhält sich diese Funktion so, als ob die Ortszeit Qt::UTC wäre.

Siehe auch setMSecsSinceEpoch(), toSecsSinceEpoch() und fromSecsSinceEpoch().

void QDateTime::setTime(QTime time, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior)

Setzt den Zeitanteil dieses Datums/Zeitpunkts auf time. Ist time ungültig, setzt diese Funktion den Wert auf Mitternacht. Daher ist es möglich, jede in einem QDateTime festgelegte Zeit zu löschen, indem man sie auf den Standardwert QTime setzt:

QDateTime dt = QDateTime::currentDateTime();
dt.setTime(QTime());

Wenn „ date()“ und „ time “ einen Zeitpunkt beschreiben, der nahe an einem Übergang für die Zeitdarstellung dieses Datums und dieser Uhrzeit liegt, steuert „ resolve “, wie diese Situation aufgelöst wird.

Hinweis: Vor Qt 6.7 fehlte in der Version dieser Funktion der Parameter „ resolve “, sodass es keine Möglichkeit gab, die mit Übergängen verbundenen Mehrdeutigkeiten aufzulösen.

Siehe auch time(), setDate() und setTimeZone().

void QDateTime::setTimeZone(const QTimeZone &toZone, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior)

Setzt die in diesem Datums- und Zeitwert verwendete Zeitzone auf „ toZone “.

Das Datums- und Zeitobjekt kann sich auf einen anderen Zeitpunkt beziehen. Es verwendet die Zeitdarstellung von toZone, was die Bedeutung der unveränderten Methoden date() und time() verändern kann.

Ist toZone ungültig, ist auch die Datums- und Zeitangabe ungültig. Andernfalls stimmt der Wert von timeSpec() dieser Datums- und Zeitangabe nach dem Aufruf mit toZone.timeSpec() überein.

Wenn date() und time() einen Zeitpunkt beschreiben, der nahe an einem Übergang für toZone liegt, steuert resolve, wie diese Situation aufgelöst wird.

Hinweis: Vor Qt 6.7 fehlte in der Version dieser Funktion der Parameter „ resolve “, sodass es keine Möglichkeit gab, die mit Übergängen verbundenen Mehrdeutigkeiten aufzulösen.

Siehe auch timeRepresentation(), timeZone() und Qt::TimeSpec.

[noexcept] void QDateTime::swap(QDateTime &other)

Tauscht dieses Datums- und Zeitangabe mit „ other “ aus. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.

QTime QDateTime::time() const

Gibt den Zeitanteil des Datums- und Zeitwerts zurück.

Siehe auch setTime(), date() und timeRepresentation().

[since 6.5] QTimeZone QDateTime::timeRepresentation() const

Gibt einen „ QTimeZone “ zurück, der angibt, wie diese Datums- und Zeitangabe die Zeit darstellt.

Der Wert von ` timeSpec()` des zurückgegebenen ` QTimeZone ` stimmt mit dem dieses Datums- und Zeitwerts überein; wenn er nicht ` Qt::TimeZone ` ist, dann ist das zurückgegebene ` QTimeZone ` eine Zeitdarstellung. Wenn ihr ` timeSpec()` den Wert ` Qt::OffsetFromUTC` hat, liefert die Methode `fixedSecondsAheadOfUtc()` des zurückgegebenen ` QTimeZone` den Offset. Wenn ` timeSpec()` den Wert ` Qt::TimeZone` hat, ist das ` QTimeZone `-Objekt selbst die vollständige Darstellung dieser Zeitzone.

Diese Funktion wurde in Qt 6.5 eingeführt.

Siehe auch ` timeZone()`, ` setTimeZone()` und ` QTimeZone::asBackendZone()`.

Qt::TimeSpec QDateTime::timeSpec() const

Gibt die Zeitangabe des Datums- und Zeitwerts zurück.

Dabei wird die Zeitdarstellung als Ortszeit, UTC, als fester Versatz gegenüber UTC (ohne Angabe des Versatzes) oder als Zeitzone (ohne Angabe der Details dieser Zeitzone) klassifiziert. Entspricht timeRepresentation().timeSpec().

Siehe auch „ setTimeZone()“, „ timeRepresentation()“, „ date()“ und „ time()“.

QTimeZone QDateTime::timeZone() const

Gibt die Zeitzone des Datums- und Zeitwerts zurück.

Das Ergebnis entspricht dem von ` timeRepresentation().asBackendZone()`. In allen Fällen ist das Ergebnis von ` timeSpec()` ` Qt::TimeZone`.

Wenn ` timeSpec()` ` Qt::LocalTime` ist, beschreibt das Ergebnis die Ortszeit zum Zeitpunkt des Aufrufs dieser Methode. Es spiegelt keine späteren Änderungen der Systemzeitzone wider, selbst wenn das ` QDateTime `, aus dem es gewonnen wurde, dies tut.

Siehe auch ` timeRepresentation()`, ` setTimeZone()`, ` Qt::TimeSpec` und ` QTimeZone::asBackendZone()`.

QString QDateTime::timeZoneAbbreviation() const

Gibt die Zeitzonenabkürzung für diesen Datums- und Zeitwert zurück.

Die zurückgegebene Zeichenfolge hängt von ` timeSpec()` ab:

Hinweis: Es kann nicht garantiert werden, dassdie Abkürzung eindeutig ist, d. h., verschiedene Zeitzonen können dieselbe Abkürzung haben. Bei „ Qt::LocalTime “ und „ Qt::TimeZone “ kann die Abkürzung, wenn sie vom Hostsystem zurückgegeben wird, lokalisiert sein.

Siehe auch timeSpec() und QTimeZone::abbreviation().

CFDateRef QDateTime::toCFDate() const

Erstellt ein CFDate-Objekt aus einem „ QDateTime “.

Der Aufrufer ist Eigentümer des CFDate-Objekts und für dessen Freigabe verantwortlich.

Siehe auch fromCFDate().

QDateTime QDateTime::toLocalTime() const

Gibt eine Kopie dieses Datums- und Zeitwerts zurück, der in die Ortszeit umgerechnet wurde.

Das Ergebnis stellt denselben Zeitpunkt dar wie diese Datums- und Uhrzeitangabe und entspricht dieser.

Beispiel:

QDateTime UTC(QDateTime::currentDateTimeUtc());
QDateTime local(UTC.toLocalTime());
qDebug() << "UTC time is:" << UTC;
qDebug() << "Local time is:" << local;
qDebug() << "No difference between times:" << UTC.secsTo(local);

Siehe auch toTimeZone(), toUTC() und toOffsetFromUtc().

qint64 QDateTime::toMSecsSinceEpoch() const

Gibt das Datums- und Zeitformat als Anzahl der Millisekunden seit dem Beginn des Jahres 1970 in UTC zurück.

Auf Systemen, die keine Zeitzonen unterstützen, verhält sich diese Funktion so, als wäre die Ortszeit „ Qt::UTC “.

Das Verhalten dieser Funktion ist undefiniert, wenn das in diesem Objekt gespeicherte Datums- und Zeitformat ungültig ist. Für alle gültigen Datumsangaben gibt diese Funktion jedoch einen eindeutigen Wert zurück.

Siehe auch toSecsSinceEpoch(), setMSecsSinceEpoch() und fromMSecsSinceEpoch().

NSDate *QDateTime::toNSDate() const

Erstellt ein NSDate-Objekt aus einem „ QDateTime “.

Das NSDate-Objekt wird automatisch freigegeben.

Siehe auch ` fromNSDate()`.

QDateTime QDateTime::toOffsetFromUtc(int offsetSeconds) const

Gibt eine Kopie dieses Datums- und Zeitwerts zurück, der gemäß der Spezifikation „ Qt::OffsetFromUTC “ mit dem angegebenen „ offsetSeconds “ konvertiert wurde. Entspricht „ toTimeZone(QTimeZone::fromSecondsAheadOfUtc(offsetSeconds)) “.

Wenn der Wert von ` offsetSeconds ` gleich 0 ist, wird ein UTC-Datums- und Zeitwert zurückgegeben.

Das Ergebnis stellt denselben Zeitpunkt dar wie dieses Datums- und Zeitangabe und ist mit dieser identisch.

Siehe auch offsetFromUtc() und toTimeZone().

qint64 QDateTime::toSecsSinceEpoch() const

Gibt das Datums- und Zeitformat als Anzahl der Sekunden seit dem Beginn des Jahres 1970 in UTC zurück.

Auf Systemen, die keine Zeitzonen unterstützen, verhält sich diese Funktion so, als ob die Ortszeit „ Qt::UTC “ wäre.

Das Verhalten dieser Funktion ist undefiniert, wenn das in diesem Objekt gespeicherte Datums- und Zeitformat ungültig ist. Für alle gültigen Datumsangaben gibt diese Funktion jedoch einen eindeutigen Wert zurück.

Siehe auch toMSecsSinceEpoch(), fromSecsSinceEpoch() und setSecsSinceEpoch().

[since 6.4] std::chrono::sys_time<std::chrono::milliseconds> QDateTime::toStdSysMilliseconds() const

Wandelt dieses Datetime-Objekt in den entsprechenden Zeitpunkt um, ausgedrückt in Millisekunden, wobei „ std::chrono::system_clock “ als Uhr verwendet wird.

Hinweis: Diese Funktion erfordert C++20.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch „ fromStdTimePoint()“ und „ toMSecsSinceEpoch()“.

[since 6.4] std::chrono::sys_seconds QDateTime::toStdSysSeconds() const

Wandelt dieses Datetime-Objekt in den entsprechenden, in Sekunden ausgedrückten Zeitpunkt um, wobei „ std::chrono::system_clock “ als Uhr verwendet wird.

Hinweis: Diese Funktion erfordert C++20.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch „ fromStdTimePoint()“ und „ toSecsSinceEpoch()“.

QString QDateTime::toString(const QString &format, QCalendar cal) const

QString QDateTime::toString(QStringView format, QCalendar cal) const

Gibt das Datums- und Zeitformat als Zeichenkette zurück. Der Parameter „ format “ bestimmt das Format der Ergebniszeichenkette. Wird „ cal “ angegeben, legt dieser Parameter den Kalender fest, der zur Darstellung des Datums verwendet wird; standardmäßig ist dies der gregorianische Kalender. Vor Qt 5.14 gab es keinen „ cal “-Parameter, und es wurde stets der gregorianische Kalender verwendet. Siehe QTime::toString() und QDate::toString() für die unterstützten Spezifizierer für Uhrzeit bzw. Datum im Parameter „ format “.

Jede nicht leere Zeichenfolge, die in einfache Anführungszeichen gesetzt ist, wird wörtlich in die Ausgabekette übernommen (ohne die Anführungszeichen), selbst wenn sie Formatierungszeichen enthält. Zwei aufeinanderfolgende einfache Anführungszeichen („''“) werden in der Ausgabe durch ein einzelnes einfaches Anführungszeichen ersetzt, anstatt eine wörtliche Zeichenfolge einzuleiten oder zu beenden. Alle anderen Zeichen in der Formatzeichenfolge werden wörtlich in die Ausgabekette übernommen.

Formate ohne Trennzeichen (z. B. „ddMM“) werden unterstützt, müssen jedoch mit Vorsicht verwendet werden, da die resultierenden Zeichenfolgen nicht immer zuverlässig lesbar sind (wenn beispielsweise „dM“ zu „212“ führt, könnte dies sowohl den 2. Dezember als auch den 21. Februar bedeuten).

Beispiele für Formatzeichenfolgen (unter der Annahme, dass das „ QDateTime “ 21. Mai 2001 14:13:09.120 lautet):

FormatErgebnis
dd.MM.yyyy21.05.2001
ddd MMMM d jjDi, 21. Mai 01
hh:mm:ss.zzz14:13:09,120
hh:mm:ss.z14:13:09.12
h:m:s ap14:13:9 Uhr

Ist das Datums- und Zeitformat ungültig, wird eine leere Zeichenkette zurückgegeben.

Hinweis: Tages- und Monatsnamen sowie die AM/PM-Angaben werden in Englisch (Locale „C“) angegeben. Um lokalisierte Monats- und Tagesnamen sowie lokalisierte Formen von AM/PM zu erhalten, verwenden Sie ` QLocale::system()`.toDateTime().

Siehe auch fromString(), QDate::toString(), QTime::toString() und QLocale::toString().

QString QDateTime::toString(QStringView format) const

Diese Funktion überlädt die Funktion „ QDateTime::toString()“.

QString QDateTime::toString(Qt::DateFormat format = Qt::TextDate) const

Gibt das Datums- und Zeitformat als Zeichenkette in dem angegebenen Format „ format “ zurück.

format Wenn das Format „ Qt::TextDate “ lautet, wird die Zeichenkette standardmäßig formatiert. Die Namen der Tage und Monate werden auf Englisch angezeigt. Ein Beispiel für diese Formatierung ist „Wed May 20 03:40:13 1998“. Informationen zur lokalisierten Formatierung finden Sie unter QLocale::toString().

Wenn der Wert von ` format ` ` Qt::ISODate` ist, entspricht das Zeichenfolgenformat der erweiterten ISO 8601-Spezifikation für die Darstellung von Datums- und Zeitangaben und hat die Form `yyyy-MM-ddTHH:mm:ss[Z|±HH:mm]`, abhängig vom Wert von ` timeSpec()` des Parameters ` QDateTime`. Wenn der Wert von ` timeSpec()` Qt::UTC ist, wird „Z“ an die Zeichenkette angehängt; wenn der Wert von ` timeSpec()` Qt::OffsetFromUTC ist, wird der Offset in Stunden und Minuten gegenüber UTC an die Zeichenkette angehängt. Um Millisekunden in das ISO-8601-Datum einzubeziehen, verwenden Sie den Befehl „ format “ Qt::ISODateWithMs, der dem Format „yyyy-MM-ddTHH:mm:ss.zzz[Z|±HH:mm]“ entspricht.

Wenn der Parameter „ format “ auf „ Qt::RFC2822Date “ gesetzt ist, wird die Zeichenkette gemäß RFC 2822 formatiert.

Ist das Datums- und Zeitformat ungültig, wird eine leere Zeichenkette zurückgegeben.

Warnung: Das Format „ Qt::ISODate “ ist nur für Jahre im Bereich von 0 bis 9999 gültig.

Diese Funktion überlädt die Funktion ` QDateTime::toString()`.

Siehe auch fromString(), QDate::toString(), QTime::toString() und QLocale::toString().

QString QDateTime::toString(const QString &format) const

Diese Funktion überlädt die Funktion „ QDateTime::toString()“.

QDateTime QDateTime::toTimeZone(const QTimeZone &timeZone) const

Gibt eine Kopie dieses Datums- und Zeitwerts zurück, der in das angegebene Format „ timeZone “ konvertiert wurde.

Das Ergebnis stellt denselben Zeitpunkt dar wie diese Datums- und Uhrzeitangabe und ist mit ihr identisch.

Das Ergebnis beschreibt den Zeitpunkt anhand der Zeitdarstellung von „ timeZone “. Zum Beispiel:

QDateTime local(QDateTime::currentDateTime());
QDateTime UTC(local.toTimeZone(QTimeZone::UTC));
qDebug() << "Local time is:" << local;
qDebug() << "UTC time is:" << UTC;
qDebug() << "No difference between times represented:" << local.secsTo(UTC);

Wenn „ timeZone “ ungültig ist, ist auch das Datums- und Zeitformat ungültig. Andernfalls stimmt die Funktion „ timeSpec()“ des zurückgegebenen Datums- und Zeitformats mit „ timeZone.timeSpec() “ überein.

Siehe auch timeRepresentation(), toLocalTime(), toUTC() und toOffsetFromUtc().

QDateTime QDateTime::toUTC() const

Gibt eine Kopie dieses Datums- und Zeitwerts zurück, der in UTC umgewandelt wurde.

Das Ergebnis stellt denselben Zeitpunkt dar wie diese Datums- und Uhrzeitangabe und entspricht dieser.

Beispiel:

QDateTime local(QDateTime::currentDateTime());
QDateTime UTC(local.toUTC());
qDebug() << "Local time is:" << local;
qDebug() << "UTC time is:" << UTC;
qDebug() << "No difference between times:" << local.secsTo(UTC);

Siehe auch toTimeZone(), toLocalTime() und toOffsetFromUtc().

[since 6.4] QDateTime &QDateTime::operator+=(std::chrono::milliseconds duration)

Ändert dieses Datetime-Objekt, indem die angegebene Zeitverschiebung „ duration “ hinzugefügt wird.

Das aktualisierte Objekt liegt später, wenn ` duration ` positiv ist, oder früher, wenn es negativ ist. Gibt eine Referenz auf dieses Datetime-Objekt zurück.

Ist dieses Datetime-Objekt ungültig, hat diese Funktion keine Auswirkung.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch ` addMSecs()`.

[since 6.4] QDateTime &QDateTime::operator-=(std::chrono::milliseconds duration)

Ändert dieses Datetime-Objekt, indem der angegebene Wert „ duration “ abgezogen wird.

Das aktualisierte Objekt liegt früher, wenn „ duration “ positiv ist, oder später, wenn es negativ ist. Gibt eine Referenz auf dieses Datetime-Objekt zurück.

Ist dieses Datetime-Objekt ungültig, hat diese Funktion keine Auswirkung.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch ` addMSecs`.

[noexcept] QDateTime &QDateTime::operator=(const QDateTime &other)

Kopiert das Datums- und Zeitangabe-Objekt „ other “ in dieses Objekt und gibt diese Kopie zurück.

Verwandte Nicht-Mitglieder

[noexcept] bool operator!=(const QDateTime &lhs, const QDateTime &rhs)

Gibt „ true “ zurück, wenn „ lhs “ sich von „ rhs “ unterscheidet; andernfalls wird „ false “ zurückgegeben.

Zwei Datums- und Zeitangaben, die unterschiedliche Zeitdarstellungen verwenden, können unterschiedliche Abweichungen von der UTC-Zeit aufweisen. In diesem Fall können sie gleichwertig sein, selbst wenn sich ihre Werte für ` date()` und ` time()` unterscheiden, sofern dieser Unterschied der Differenz in der UTC-Abweichung entspricht. Wenn ihre Werte für ` date() ` und ` time() ` übereinstimmen, ist diejenige mit der größeren Abweichung von der UTC-Zeit kleiner (früher) als diejenige mit der geringeren Abweichung. Daher sind Datums- und Zeitangaben nur schwach geordnet.

Seit Version 5.14 sind alle ungültigen Datums- und Zeitangaben gleichwertig und kleiner als alle gültigen Datums- und Zeitangaben.

Siehe auch ` operator==()`.

[since 6.4] QDateTime operator+(const QDateTime &dateTime, std::chrono::milliseconds duration)

[since 6.4] QDateTime operator+(std::chrono::milliseconds duration, const QDateTime &dateTime)

Gibt ein „ QDateTime “-Objekt zurück, das ein Datums- und Zeit duration enthält, das Millisekunden später liegt als dateTime (oder früher, wenn duration negativ ist).

Ist „ dateTime “ ungültig, wird ein ungültiges Datums- und Zeitformat zurückgegeben.

Diese Funktionen wurden in Qt 6.4 eingeführt.

Siehe auch addMSecs().

[since 6.4] std::chrono::milliseconds operator-(const QDateTime &lhs, const QDateTime &rhs)

Gibt die Zeit in Millisekunden zwischen lhs und rhs zurück.

Wenn lhs vor rhs liegt, ist das Ergebnis negativ. Gibt 0 ms zurück, wenn eine der beiden Datums- und Zeitangaben ungültig ist.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch msecsTo().

[since 6.4] QDateTime operator-(const QDateTime &dateTime, std::chrono::milliseconds duration)

Gibt ein „ QDateTime “-Objekt zurück, das ein Datums- und Zeit duration enthält, das Millisekunden früher liegt als dateTime (oder später, falls duration negativ ist).

Ist „ dateTime “ ungültig, wird ein ungültiges Datums- und Zeitformat zurückgegeben.

Diese Funktion wurde in Qt 6.4 eingeführt.

Siehe auch addMSecs().

[noexcept] bool operator<(const QDateTime &lhs, const QDateTime &rhs)

Gibt „ true “ zurück, wenn „ lhs “ vor „ rhs “ liegt; andernfalls wird „ false “ zurückgegeben.

Zwei Datums- und Zeitangaben, die unterschiedliche Zeitdarstellungen verwenden, können unterschiedliche Abweichungen von UTC aufweisen. In diesem Fall können sie gleichwertig sein, auch wenn sich ihre Werte für ` date()` und ` time()` unterscheiden, sofern dieser Unterschied der Differenz in der UTC-Abweichung entspricht. Wenn ihre Werte für ` date() ` und ` time() ` übereinstimmen, ist diejenige mit der größeren Abweichung von UTC kleiner (früher) als diejenige mit der geringeren Abweichung. Daher sind Datums- und Zeitangaben nur schwach geordnet.

Seit Version 5.14 sind alle ungültigen Datums- und Zeitangaben gleichwertig und kleiner als alle gültigen Datums- und Zeitangaben.

Siehe auch operator==().

QDataStream &operator<<(QDataStream &out, const QDateTime &dateTime)

Schreibt „ dateTime “ in den Stream „ out “.

Siehe auch „Serialisierung vonQt-Datentypen“.

[noexcept] bool operator<=(const QDateTime &lhs, const QDateTime &rhs)

Gibt ` true ` zurück, wenn ` lhs ` kleiner oder gleich ` rhs` ist; andernfalls wird ` false` zurückgegeben.

Zwei Datums- und Zeitangaben, die unterschiedliche Zeitdarstellungen verwenden, können unterschiedliche Abweichungen von der UTC-Zeit aufweisen. In diesem Fall können sie gleichwertig sein, selbst wenn sich ihre Werte für ` date()` und ` time()` unterscheiden, sofern diese Differenz der Differenz der UTC-Abweichung entspricht. Wenn ihre Werte für ` date() ` und ` time() ` übereinstimmen, ist diejenige mit der größeren Abweichung von der UTC-Zeit kleiner (früher) als diejenige mit der geringeren Abweichung. Daher sind Datums- und Zeitangaben nur schwach geordnet.

Seit Version 5.14 sind alle ungültigen Datums- und Zeitangaben gleichwertig und kleiner als alle gültigen Datums- und Zeitangaben.

Siehe auch operator==().

[noexcept] bool operator==(const QDateTime &lhs, const QDateTime &rhs)

Gibt „ true “ zurück, wenn „ lhs “ denselben Zeitpunkt wie „ rhs “ darstellt; andernfalls wird „ false “ zurückgegeben.

Zwei Datums- und Zeitangaben, die unterschiedliche Zeitdarstellungen verwenden, können unterschiedliche Abweichungen von der UTC-Zeit aufweisen. In diesem Fall können sie als gleichwertig verglichen werden, selbst wenn sich ihre Werte für ` date()` und ` time()` unterscheiden, sofern dieser Unterschied der Differenz im UTC-Offset entspricht. Wenn ihre Werte für ` date() ` und ` time() ` übereinstimmen, ist diejenige mit dem höheren Offset von der UTC-Zeit kleiner (früher) als diejenige mit dem niedrigeren Offset. Daher sind Datums- und Zeitangaben nur schwach geordnet.

Seit Version 5.14 sind alle ungültigen Datums- und Zeitangaben gleichwertig und kleiner als alle gültigen Datums- und Zeitangaben.

Siehe auch operator!=(), operator<(), operator<=(), operator>() und operator>=().

[noexcept] bool operator>(const QDateTime &lhs, const QDateTime &rhs)

Gibt „ true “ zurück, wenn „ lhs “ später ist als „ rhs “; andernfalls wird „ false “ zurückgegeben.

Zwei Datums- und Zeitangaben, die unterschiedliche Zeitdarstellungen verwenden, können unterschiedliche Abweichungen von der UTC-Zeit aufweisen. In diesem Fall können sie gleichwertig sein, auch wenn sich ihre Werte für ` date()` und ` time()` unterscheiden, sofern dieser Unterschied der Differenz der UTC-Abweichung entspricht. Wenn ihre Werte für ` date() ` und ` time() ` übereinstimmen, ist diejenige mit der größeren Abweichung von der UTC-Zeit kleiner (früher) als diejenige mit der geringeren Abweichung. Daher sind Datums- und Zeitangaben nur schwach geordnet.

Seit Version 5.14 sind alle ungültigen Datums- und Zeitangaben gleichwertig und kleiner als alle gültigen Datums- und Zeitangaben.

Siehe auch ` operator==()`.

[noexcept] bool operator>=(const QDateTime &lhs, const QDateTime &rhs)

Gibt „ true “ zurück, wenn „ lhs “ größer oder gleich „ rhs “ ist; andernfalls wird „ false “ zurückgegeben.

Zwei Datums- und Zeitangaben, die unterschiedliche Zeitdarstellungen verwenden, können unterschiedliche Abweichungen von der UTC-Zeit aufweisen. In diesem Fall können sie gleichwertig sein, auch wenn sich ihre Werte für ` date()` und ` time()` unterscheiden, sofern dieser Unterschied der Differenz in der UTC-Abweichung entspricht. Wenn ihre Werte für ` date() ` und ` time() ` übereinstimmen, ist diejenige mit der größeren Abweichung von der UTC-Zeit kleiner (früher) als diejenige mit der geringeren Abweichung. Daher sind Datums- und Zeitangaben nur schwach geordnet.

Seit Version 5.14 sind alle ungültigen Datums- und Zeitangaben gleichwertig und kleiner als alle gültigen Datums- und Zeitangaben.

Siehe auch ` operator==()`.

QDataStream &operator>>(QDataStream &in, QDateTime &dateTime)

Liest ein Datums- und Zeitangabe aus dem Stream „ in “ in „ dateTime “ ein.

Siehe auch „Serialisierung vonQt-Datentypen“.

© 2026 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.