QDateTime Class
La classe QDateTime fournit des fonctions liées à la date et à l'heure. En savoir plus...
| En-tête : | #include <QDateTime> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
- Liste de tous les membres, y compris les membres hérités
- Membres obsolètes
- QDateTime fait partie des classes implicitement partagées.
Remarque : toutes les fonctions de cette classe sont réentrantes.
Comparaisons QDateTime
| Catégorie | Types comparables |
|---|---|
| faible | QDateTime |
Types publics
(since 6.7) enum class | TransitionResolution { Reject, RelativeToBefore, RelativeToAfter, PreferBefore, PreferAfter, …, PreferDaylightSaving } |
| enum class | YearRange { First, Last } |
Fonctions publiques
| 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) |
Membres publics statiques
(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) |
Éléments non membres associés
| 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) |
Description détaillée
Un objet QDateTime encode une date calendaire et une heure (une « date-heure ») conformément à une représentation temporelle. Il combine les fonctionnalités des classes ` QDate ` et ` QTime `. Il peut lire la date-heure actuelle à partir de l’horloge système. Il fournit des fonctions permettant de comparer des dates-heures et de manipuler une date-heure en y ajoutant un nombre de secondes, de jours, de mois ou d’années.
QDateTime peut décrire des dates-heures par rapport à local time, à UTC, à un offset from UTC spécifié ou à un time zone spécifié. Chacune de ces représentations temporelles peut être encapsulée dans une instance appropriée de la classe QTimeZone. Par exemple, un fuseau horaire « Europe/Berlin » appliquera les règles d’heure d’été en vigueur en Allemagne. En revanche, un décalage fixe de +3 600 secondes par rapport à l’UTC correspond à une heure d’avance sur l’UTC (généralement noté selon la norme ISO sous la forme « UTC+01:00 »), sans les complications liées à l’heure d’été. Que vous utilisiez l’heure locale ou un fuseau horaire spécifié, les changements de fuseau horaire (voir below) sont pris en compte. La méthode timeSpec() d’un objet QDateTime vous indiquera lequel des quatre types de représentation temporelle est utilisé ; sa méthode timeRepresentation() fournit une description complète de cette représentation temporelle, sous la forme d’un objet QTimeZone.
Un objet QDateTime est généralement créé soit en spécifiant explicitement une date et une heure dans le constructeur, soit en utilisant une fonction statique telle que currentDateTime() ou fromMSecsSinceEpoch(). La date et l’heure peuvent être modifiées à l’aide des méthodes setDate() et setTime(). Une date-heure peut également être définie à l’aide de la fonction ` setMSecsSinceEpoch()` qui prend en paramètre le temps, en millisecondes, écoulé depuis le début de l’année 1970, en UTC. La fonction ` fromString()` renvoie un objet `QDateTime`, à partir d’une chaîne de caractères et d’un format de date utilisé pour interpréter la date contenue dans cette chaîne.
QDateTime::currentDateTime() renvoie un objet QDateTime qui exprime la date et l’heure actuelles selon une représentation temporelle spécifique, telle que l’heure locale (par défaut). QDateTime::currentDateTimeUtc() renvoie un objet QDateTime qui exprime la date et l’heure actuelles selon l’heure UTC ; cette fonction est équivalente à QDateTime::currentDateTime(QTimeZone::UTC).
Les fonctions date() et time() permettent d’accéder aux composantes date et heure de l’objet datetime. Les mêmes informations sont fournies au format textuel par la fonction toString().
QDateTime fournit un ensemble complet d’opérateurs permettant de comparer deux objets QDateTime, où une valeur plus petite correspond à une date antérieure et une valeur plus grande à une date postérieure.
Vous pouvez incrémenter (ou décrémenter) une date-heure d’un nombre donné de millisecondes à l’aide de ` addMSecs()` (), de secondes à l’aide de ` addSecs()` ou de jours à l’aide de ` addDays()`. De même, vous pouvez utiliser ` addMonths()` et ` addYears()`. La fonction daysTo() renvoie le nombre de jours entre deux dates-heures, secsTo() renvoie le nombre de secondes entre deux dates-heures, et msecsTo() renvoie le nombre de millisecondes entre deux dates-heures. Ces opérations tiennent compte de l’heure d’été (DST) et des autres changements de fuseau horaire, le cas échéant.
Utilisez ` toTimeZone()` pour reformuler une date-heure selon une représentation temporelle différente. En transmettant un objet ` QTimeZone ` léger représentant l’heure locale, l’UTC ou un décalage fixe par rapport à l’UTC, vous pouvez convertir la date-heure pour qu’elle utilise la représentation temporelle correspondante ; vous pouvez également transmettre un fuseau horaire complet (dont la fonction ` timeSpec()` est ` Qt::TimeZone`) pour l’utiliser à la place.
Remarques
QDateTime ne tient pas compte des secondes intercalaires.
Toutes les conversions vers et depuis des formats de chaîne de caractères sont effectuées en utilisant la locale C. Pour les conversions localisées, voir QLocale.
Il n’y a pas d’année 0 dans le calendrier grégorien. Les dates de cette année sont considérées comme non valides. L’année -1 correspond à l’année « 1 avant Jésus-Christ » ou « 1 avant l’ère commune ». Le jour précédant le 1er janvier de l’ère commune est le 31 décembre de l’ère avant Jésus-Christ.
L'utilisation de l'heure locale (par défaut) ou d'un fuseau horaire spécifié implique de résoudre les éventuels problèmes liés à transitions. Par conséquent, les opérations sur ces instances QDateTime (notamment leur création) peuvent s'avérer plus coûteuses que leurs équivalents lorsqu'on utilise l'UTC ou un décalage fixe par rapport à celui-ci.
Plage de dates valides
La plage de valeurs que QDateTime peut représenter dépend de l’implémentation du stockage interne. QDateTime est actuellement stocké dans un qint64 sous la forme d’une valeur sérielle en millisecondes codant la date et l’heure. Cela limite la plage de dates à environ ±292 millions d’années, contre une plage de ±2 milliards d’années pour l’ QDate. Il convient de veiller, lors de la création d’un objet QDateTime avec des valeurs extrêmes, à ne pas provoquer de débordement de la mémoire. La plage exacte des valeurs prises en charge varie en fonction de la représentation temporelle utilisée.
Utilisation des fuseaux horaires
QDateTime utilise les informations de fuseau horaire du système pour déterminer le fuseau horaire local actuel et son décalage par rapport à l’UTC. Si le système n’est pas configuré correctement ou n’est pas à jour, QDateTime fournira des résultats erronés.
De même, QDateTime utilise les informations fournies par le système pour déterminer les décalages d’autres fuseaux horaires par rapport à l’UTC. Si ces informations sont incomplètes ou obsolètes, QDateTime donnera des résultats erronés. Consultez la documentation « QTimeZone » pour plus de détails.
Sur les systèmes Unix modernes, cela signifie que QDateTime dispose généralement d’informations précises sur les transitions historiques (y compris l’heure d’été, voir ci-dessous) dans la mesure du possible. Sous Windows, où le système ne prend pas en charge les données historiques sur les fuseaux horaires, la précision historique n’est pas garantie en ce qui concerne les transitions de fuseaux horaires, notamment l’heure d’été. Cependant, la compilation de Qt avec la bibliothèque ICU permettra à QTimeZone de disposer de la même base de données de fuseaux horaires que celle utilisée sous Unix.
Changements de fuseau horaire
QDateTime prend en compte les transitions de fuseau horaire, tant les transitions entre l'heure normale et l'heure d'été (DST) que celles qui surviennent lorsqu'un fuseau modifie son décalage standard. Par exemple, si le changement a lieu à 2 h du matin et que l'horloge passe directement à 3 h, il y a alors une heure « manquante » entre 02:00:00 et 02:59:59.999. Une telle transition est appelée « avancement du printemps » et les heures sautées n’ont aucune signification. Lorsqu’une transition s’effectue dans l’autre sens, ce qu’on appelle un « recul d’heure », un intervalle de temps est répété, d’abord dans l’ancien fuseau (généralement l’heure d’été), puis dans le nouveau (généralement l’heure d’hiver), de sorte que les heures comprises dans cet intervalle sont ambiguës.
Certaines zones appliquent une « heure d'été inversée », c'est-à-dire qu'elles utilisent l'heure normale en été et l'heure d'été (avec un décalage réduit) en hiver. Pour ces fuseaux horaires, le passage à l’heure d’été a toujours lieu au printemps et fait gagner une heure, mais correspond à une sortie de l’heure d’été, tandis que le passage à l’heure d’hiver fait toujours perdre une heure à l’automne, mais correspond à une entrée dans l’heure d’été.
Lors de la conversion à partir d’une heure UTC (ou d’une heure présentant un décalage fixe par rapport à l’UTC), on obtient toujours un résultat valide et sans ambiguïté, quel que soit le fuseau horaire. Cependant, lorsqu’on combine une date et une heure pour former une date-heure, exprimée par rapport à l’heure locale ou à un fuseau horaire spécifique, le résultat nominal peut se situer dans une période de transition, ce qui le rend soit invalide, soit ambigu. Les méthodes dans lesquelles cette situation peut se présenter acceptent un paramètre ` resolve ` : celui-ci est toujours ignoré si la date-heure demandée est valide et sans ambiguïté. Voir TransitionResolution pour les options que ce paramètre permet de contrôler. Avant Qt 6.7, l’équivalent de son ` LegacyBehavior ` était sélectionné.
Pour un intervalle sauté lors du passage à l’heure d’été, l’interprétation de l’heure demandée avec l’un ou l’autre des décalages donne une heure réelle à laquelle l’autre décalage était en vigueur ; ainsi, passer ` TransitionResolution::RelativeToBefore ` pour ` resolve ` donnera en réalité une heure postérieure au changement d’heure, qui aurait eu la représentation demandée si ce changement n’avait pas eu lieu. De même, TransitionResolution::RelativeToAfter pour resolve donne un moment antérieur à la transition, qui aurait eu la représentation demandée si la transition avait eu lieu plus tôt.
Lorsque `QDateTime` effectue des opérations arithmétiques, comme avec `addDay()` ou ` addSecs()`, il veille à produire un résultat valide. Par exemple, un jour où l’heure passe de 02 h 00 à 03 h 00 (avancement de l’heure au printemps), ajouter une seconde à 01 h 59 min 59 s donnera 03 h 00 min 00 s. Ajouter un jour à 02 h 30 de la veille donnera 03 h 30 le jour du changement d’heure, tandis que soustraire un jour, en appelant addDay(-1), à 02 h 30 du lendemain donnera 01 h 30 le jour du changement d’heure. Alors que la fonction addSecs() fournit un décalage temporel correspondant au nombre de secondes indiqué, la fonction addDays() ajuste la date et ne modifie l’heure que si cela permet d’éviter un résultat invalide. En appliquant addDays(1) à 03 h 00 la veille du passage à l’heure d’été, on obtient simplement 03 h 00 le jour du changement d’heure, même si ce dernier n’est que 23 heures après le premier ; mais addSecs(24 * 60 * 60) donne 04 h 00 le jour du changement d’heure, puisque c’est 24 heures plus tard. Les changements d’heure classiques font que certains jours durent 23 ou 25 heures.
Pour les dates et heures que l’ time_t du système peut représenter (du 14/12/1901 au 18/01/2038 sur les systèmes à 32 bits time_t; pour la plage complète que QDateTime peut représenter si le type est à 64 bits), les API système standard sont utilisées pour déterminer le décalage de l’heure locale par rapport à l’UTC. Pour les dates et heures non prises en charge par ces API système (ce qui peut inclure certaines valeurs comprises dans la plage time_t ), la fonction QTimeZone::systemTimeZone() est utilisée, si elle est disponible, ou une estimation est effectuée au mieux. Dans tous les cas, les informations de décalage utilisées dépendent du système et peuvent être incomplètes ou, pour les dates passées, historiquement inexactes. De plus, pour les dates futures, les décalages du fuseau horaire local et les règles d’heure d’été peuvent changer avant que cette date n’arrive.
Transitions sur une journée entière
Un petit nombre de fuseaux horaires ont sauté ou répété des journées entières dans le cadre du déplacement de la ligne de changement de date à travers leur territoire. Pour ceux-ci, daysTo() ne tiendra pas compte de la duplication ou du saut, en utilisant simplement la différence de date calendaire ; en revanche, msecsTo() et secsTo() connaissent le véritable intervalle de temps. De même, addMSecs() et addSecs() correspondent directement au temps écoulé, tandis que addDays(), addMonths() et addYears() suivent le calendrier nominal, sauf lorsque le fait de tomber sur une lacune ou une duplication nécessite de résoudre une ambiguïté ou une invalidité due à une duplication ou à une omission.
Remarque : les jours « perdus » lors d’un changement de calendrier, par exemple du calendrier julien au calendrier grégorien, n’affectent pas QDateTime. Bien que les deux calendriers décrivent les dates différemment, les jours successifs traversant ce changement sont décrits par des instances successives de QDate, chacune postérieure d’un jour à la précédente, comme le décrit l’un ou l’autre calendrier ou leurs valeurs toJulianDay(). En revanche, un fuseau horaire qui saute ou duplique un jour modifie sa description de l’heure, et non de la date, même s’il le fait par tranches de 24 heures entières.
Décalages par rapport à l’UTC
Les décalages par rapport à l’UTC sont mesurés en secondes à l’est de Greenwich. L’instant décrit par une date et une heure données, comme midi un jour donné, dépend de la représentation temporelle utilisée. Les décalages plus élevés par rapport à l’UTC correspondent à un instant antérieur, et les décalages plus faibles à un instant postérieur, pour toute combinaison donnée de date et d’heure.
Il n’existe aucune restriction explicite quant à la valeur d’un décalage par rapport à l’UTC, mais une limite implicite s’impose lors de l’utilisation des méthodes ` toString()` et ` fromString()`, qui utilisent le format ±hh:mm, limitant ainsi la plage à ± 99 heures et 59 minutes, et uniquement à des minutes entières. Notez qu’actuellement, aucun fuseau horaire ne présente de décalage en dehors de la plage de ±14 heures et que tous les décalages connus sont des multiples de cinq minutes. Les fuseaux horaires historiques ont une plage plus large et peuvent comporter des décalages incluant des secondes ; ces derniers ne peuvent pas être représentés fidèlement sous forme de chaînes de caractères.
Voir également QDate, QTime, QDateTimeEdit et QTimeZone.
Documentation sur les types de membres
[since 6.7] enum class QDateTime::TransitionResolution
Cette énumération sert à résoudre les combinaisons de date et d'heure relevant de Timezone transitions.
Lors de la construction d’une date-heure, spécifiée en heure locale ou dans un fuseau horaire appliquant l’heure d’été, ou lors de la modification d’une date-heure à l’aide des fonctions ` setDate()`, ` setTime()` ou ` setTimeZone()`, les paramètres fournis peuvent impliquer une représentation temporelle qui n’a aucune signification ou qui en a deux dans le fuseau horaire concerné. De telles représentations temporelles sont décrites comme étant en période de transition. Dans les deux cas, nous pouvons simplement renvoyer une date-heure invalide, afin d’indiquer que l’opération est mal définie. En cas d’ambiguïté, nous pouvons également sélectionner l’une des deux heures susceptibles d’être visées. Lorsqu’il n’y a pas de sens, nous pouvons sélectionner une heure de part et d’autre de celle-ci qui aurait pu être visée de manière plausible. Par exemple, lors d’une avancée à partir d’un moment antérieur, nous pouvons sélectionner le moment situé après la transition qui correspond effectivement à la durée spécifiée après le moment antérieur en question. Les options spécifiées ici configurent la manière dont cette sélection est effectuée.
| Constante | Valeur | Description |
|---|---|---|
QDateTime::TransitionResolution::Reject | 0 | Considérer tout moment d’une transition comme non valide. Soit il l’est réellement, soit il est ambigu. |
QDateTime::TransitionResolution::RelativeToBefore | 1 | Sélectionne un moment comme si l'on avançait à partir d'un moment antérieur à la transition. Cela interprète le moment demandé en utilisant le décalage en vigueur avant la transition et, si nécessaire, convertit le résultat au décalage en vigueur au moment résultant. |
QDateTime::TransitionResolution::RelativeToAfter | 2 | Sélectionne un moment comme si l'on remontait dans le temps à partir d'un moment postérieur à la transition. Cela interprète le moment demandé en utilisant le décalage en vigueur après la transition et, si nécessaire, convertit le résultat selon le décalage en vigueur au moment résultant. |
QDateTime::TransitionResolution::PreferBefore | 3 | Sélectionne un moment antérieur à la transition, |
QDateTime::TransitionResolution::PreferAfter | 4 | Sélectionne un moment postérieur à la transition. |
QDateTime::TransitionResolution::PreferStandard | 5 | Sélectionne une heure du côté de l’heure d’hiver de la transition. |
QDateTime::TransitionResolution::PreferDaylightSaving | 6 | Sélectionne une heure du côté de l’heure d’été de la transition. |
Une constante supplémentaire, ` LegacyBehavior`, est utilisée comme valeur par défaut pour les paramètres `TransitionResolution` dans certains constructeurs et fonctions de mise en valeur. Il s'agit d'un alias de ` RelativeToBefore`, qui implémente un comportement correspondant au plus près à celui de ` QDateTime ` avant Qt 6.7.
Pour addDays(), addMonths() ou addYears(), le comportement consiste (et consistait, pour l’essentiel) à utiliser RelativeToBefore en cas d’ajout d’un ajustement positif et RelativeToAfter en cas d’ajout d’un ajustement négatif.
Remarque : dans les fuseaux horaires où l’heure d’été augmente le décalage par rapport à l’UTC en été (ce que l’on appelle « l’heure d’été positive »), PreferStandard est un alias de RelativeToAfter et PreferDaylightSaving un alias de RelativeToBefore. Dans les fuseaux horaires où le mécanisme de l'heure d'été se traduit par une diminution du décalage par rapport à l'UTC en hiver (ce que l'on appelle « l'heure d'été négative »), c'est l'inverse qui s'applique, à condition que le système d'exploitation indique — comme c'est le cas sur la plupart des plateformes — si une date-heure est en heure d'été ou en heure standard. Sur certaines plateformes, où les détails de la transition ne sont pas disponibles, même pour les dates-heures de type « Qt::TimeZone », ` QTimeZone ` est contraint de supposer que le décalage le plus faible par rapport à l'UTC correspond à l'heure d'hiver, ce qui revient à supposer un « DST positif ».
Les tableaux suivants illustrent comment un constructeur QDateTime traite une requête pour 02 h 30 un jour où l’heure locale passe de 02 h 00 à 03 h 00, avec une heure d’hiver LST et une heure d’été LDT nominales de part et d’autre, selon les différents cas de figure possibles. Le type de transition peut consister à sauter une heure ou à la répéter. Le type de transition et la valeur d’un paramètre resolve déterminent quelle heure réelle est sélectionnée à la date donnée. Tout d’abord, le cas courant de l’heure d’été positive, où :
| Avant | 02 h 00 – 03 h 00 | Après | resolve | sélectionné |
|---|---|---|---|---|
| LST | ignorer | LDT | Par rapport à avant | 03h30 LDT |
| LST | sauter | LDT | Par rapport à après | 01 h 30 LST |
| LST | sauter | LDT | Préférer avant | 01 h 30 LST |
| LST | ignorer | LDT | Préférer après | 03 h 30 LDT |
| LST | ignorer | LDT | Préférer l'heure standard | 01 h 30 LST |
| LST | ignorer | LDT | Préférer l'heure d'été | 03 h 30 LDT |
| LDT | répéter | LST | Par rapport à avant | 02 h 30 LDT |
| LDT | répéter | LST | Par rapport à après | 02 h 30 LST |
| LDT | répéter | LST | Préférer avant | 02 h 30 LDT |
| LDT | répéter | LST | De préférence après | 02 h 30 LST |
| LDT | répéter | LST | Préférer l'heure standard | 02 h 30 LST |
| LDT | répéter | LST | Préférer l'heure d'été | 02 h 30 LDT |
Deuxièmement, l'argument en faveur de l'heure d'été négative, consistant à utiliser l'heure LDT en hiver et à sauter une heure pour passer à l'heure LST en été, puis à rajouter une heure lors du retour à l'heure d'hiver :
| LDT | saut | LST | Par rapport à avant | 03h30 LST |
| LDT | sauter | LST | Par rapport à après | 01 h 30 LDT |
| LDT | sauter | LST | Préférer avant | 01 h 30 LDT |
| LDT | ignorer | LST | Préférer après | 03 h 30 LST |
| LDT | ignorer | LST | Préférer l'heure standard | 03 h 30 LST |
| LDT | ignorer | LST | Préférer l'heure d'été | 01 h 30 LDT |
| LST | répéter | LDT | Par rapport à avant | 02 h 30 LST |
| LST | répéter | LDT | Par rapport à après | 02 h 30 LDT |
| LST | répéter | LDT | Préférer avant | 02 h 30 LST |
| LST | répéter | LDT | Préféré après | 02 h 30 LDT |
| LST | répéter | LDT | Préférer l'heure standard | 02 h 30 LST |
| LST | répéter | LDT | Préférer l'heure d'été | 02 h 30 LDT |
La fonction « Reject » peut être utilisée pour demander aux API d'QDateTime s pertinentes de renvoyer un objet date-heure invalide, afin que votre code puisse gérer lui-même les transitions, par exemple en alertant un utilisateur sur le fait que la date-heure qu'il a sélectionnée se trouve dans un intervalle de transition, afin de lui offrir la possibilité de résoudre un conflit ou une ambiguïté. Le code utilisant cette fonction peut très bien trouver utiles les autres options ci-dessus pour déterminer les informations pertinentes à utiliser dans sa propre résolution (ou celle de l’utilisateur). Si le début ou la fin de la transition, ou le moment de la transition elle-même, constitue la bonne résolution, les API de transition de QTimeZone peuvent être utilisées pour obtenir ces informations. Vous pouvez déterminer si la transition correspond à un intervalle répété ou sauti en utilisant secsTo() pour mesurer le temps réel entre midi le jour précédent et midi le jour suivant. Le résultat sera inférieur à 48 heures pour un intervalle sauti (comme le passage à l’heure d’été) et supérieur à 48 heures pour un intervalle répété (comme le retour à l’heure d’hiver).
Remarque : lorsqu’une résolution autre que « Reject » est spécifiée, un objet ` QDateTime ` valide est renvoyé, si possible. Si la date-heure demandée se situe dans un intervalle manquant, la date-heure renvoyée ne comportera pas l’ time() demandée — ou, dans certains cas, l’ date(), si une journée entière a été sautée. Vous pouvez ainsi détecter quand une lacune est rencontrée en comparant date() et time() à ce qui a été demandé.
Lien avec d’autres logiciels de gestion de la date et de l’heure
Les API de gestion de la date et de l’heure du langage de programmation Python disposent d’un paramètre « fold » qui correspond à « RelativeToBefore » (fold = True) et « RelativeToAfter » (fold = False).
La proposition Temporal, destinée à remplacer la méthode Date de JavaScript, propose quatre options pour la gestion d’une transition, en tant que valeur du paramètre disambiguation. L’option 'reject' lève une exception, ce qui correspond globalement à la méthode Reject produisant un résultat non valide. Les options 'earlier' et 'later' correspondent respectivement aux méthodes PreferBefore et PreferAfter. L’option 'compatible' correspond à la méthode RelativeToBefore (et à la méthode fold = True de Python).
Cette énumération a été introduite dans Qt 6.7.
Voir également Timezone transitions.
enum class QDateTime::YearRange
Ce type énuméré décrit la plage d'années (selon le calendrier grégorien) pouvant être représentée par QDateTime:
| Constante | Valeur | Description |
|---|---|---|
QDateTime::YearRange::First | -292275056 | Les dernières parties de cette année sont représentables |
QDateTime::YearRange::Last | +292278994 | Les premières parties de cette année sont représentables |
Les premières et dernières dates-heures exactes représentables se situent dans ces années et dépendent de l’ timeRepresentation() utilisée. Elles peuvent être déterminées en transmettant des valeurs appropriées à la fonction fromMSecsSinceEpoch().
Toutes les dates situées strictement entre ces deux années sont également représentables. Notez toutefois que le calendrier grégorien ne comporte pas d’année zéro.
Documentation des fonctions membres
QDateTime::QDateTime(QDate date, QTime time, const QTimeZone &timeZone, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior)
Crée un objet `datetime` à partir des données fournies date et time, en utilisant le format de représentation de l'heure décrit à l'adresse timeZone.
Si date est valide et time ne l’est pas, l’heure sera définie sur minuit. Si timeZone n’est pas valide, l’objet datetime sera invalide. Si date et time décrivent un moment proche d’une transition pour timeZone, resolve contrôle la manière dont cette situation est résolue.
Remarque : avant Qt 6.7, la version de cette fonction ne disposait pas du paramètre « resolve » et ne permettait donc pas de résoudre les ambiguïtés liées aux transitions.
[noexcept] QDateTime::QDateTime()
Crée une date-heure nulle, en utilisant par défaut l'heure locale.
Une date-heure nulle n'est pas valide, car sa date et son heure ne sont pas valides.
Voir également isValid(), setMSecsSinceEpoch(), setDate(), setTime() et setTimeZone().
[since 6.5] QDateTime::QDateTime(QDate date, QTime time, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior)
Crée un objet `datetime` à partir des valeurs ` date ` et ` time` fournies, en utilisant l'heure locale.
Si date est valide et que time ne l’est pas, minuit sera utilisé comme heure. Si date et time décrivent un moment proche d’une transition de l’heure locale, resolve contrôle la manière dont cette situation est résolue.
Remarque : avant Qt 6.7, la version de cette fonction ne disposait pas du paramètre « resolve » et ne pouvait donc pas résoudre les ambiguïtés liées aux transitions.
Il s'agit d'une fonction surchargée.
Cette fonction a été introduite dans Qt 6.5.
[noexcept] QDateTime::QDateTime(const QDateTime &other)
Crée une copie de la date-heure « other ».
[noexcept] QDateTime::QDateTime(QDateTime &&other)
Transfère le contenu de l'objet temporaire « other » (date-heure) vers cet objet et laisse « other » dans un état non spécifié (mais correct).
[noexcept] QDateTime::~QDateTime()
Supprime la date-heure.
QDateTime QDateTime::addDays(qint64 ndays) const
Renvoie un objet ` QDateTime ` contenant une date-heure ` ndays ` jours après la date-heure de cet objet (ou avant si ` ndays ` est négatif).
Si la valeur de ` timeSpec()` est ` Qt::LocalTime ` ou ` Qt::TimeZone ` et que la date et l’heure résultantes se situent pendant l’heure de transition entre l’heure d’hiver et l’heure d’été, le résultat se situera alors juste après cette intervalle, dans le sens du changement. Si le changement a lieu à 2 h du matin et que l’horloge passe à 3 h, le résultat d’une visée comprise entre 2 h et 3 h sera ajusté pour se situer avant 2 h (si ndays < 0) ou après 3 h (dans le cas contraire).
Voir également daysTo(), addMonths(), addYears(), addSecs() et Timezone transitions.
[since 6.4] QDateTime QDateTime::addDuration(std::chrono::milliseconds msecs) const
Renvoie un objet ` QDateTime ` contenant une date-heure ` msecs ` millisecondes après la date-heure de cet objet (ou avant si ` msecs ` est négatif).
Si cette date-heure n'est pas valide, une date-heure non valide sera renvoyée.
Remarque : l'addition de durées exprimées en « std::chrono::months » ou « std::chrono::years » ne donne pas le même résultat que celui obtenu en utilisant addMonths() ou addYears(). Les premières sont des durées fixes, calculées par rapport à l'année solaire ; les secondes utilisent les définitions des mois et des années du calendrier grégorien.
Cette fonction a été introduite dans Qt 6.4.
Voir également addMSecs(), msecsTo(), addDays(), addMonths() et addYears().
QDateTime QDateTime::addMSecs(qint64 msecs) const
Renvoie un objet ` QDateTime ` contenant une date-heure ` msecs ` correspondant à un moment situé `milliseconds` après la date-heure de cet objet (ou avant si ` msecs ` est négatif).
Si cette date-heure n'est pas valide, une date-heure non valide sera renvoyée.
Voir également addSecs(), msecsTo(), addDays(), addMonths() et addYears().
QDateTime QDateTime::addMonths(int nmonths) const
Renvoie un objet ` QDateTime ` contenant une date-heure nmonths située x mois après la date-heure de cet objet (ou avant, si ` nmonths ` est négatif).
Si la fonction timeSpec() reçoit les paramètres Qt::LocalTime ou Qt::TimeZone et que la date et l’heure résultantes se situent pendant l’heure de transition entre l’heure d’hiver et l’heure d’été, le résultat se situera juste après cette plage, dans le sens du changement. Si le changement a lieu à 2 h du matin et que l’horloge passe à 3 h, le résultat d’une visée comprise entre 2 h et 3 h sera ajusté pour se situer avant 2 h (si nmonths < 0) ou après 3 h (dans le cas contraire).
Voir également daysTo(), addDays(), addYears(), addSecs() et Timezone transitions.
QDateTime QDateTime::addSecs(qint64 s) const
Renvoie un objet ` QDateTime ` contenant une date-heure ` s ` secondes après la date-heure de cet objet (ou avant si ` s ` est négatif).
Si cette date-heure n'est pas valide, une date-heure non valide sera renvoyée.
Voir également addMSecs(), secsTo(), addDays(), addMonths() et addYears().
QDateTime QDateTime::addYears(int nyears) const
Renvoie un objet ` QDateTime ` contenant une date-heure nyears située x années après la date-heure de cet objet (ou avant, si ` nyears ` est négatif).
Si la fonction timeSpec() prend pour paramètres Qt::LocalTime ou Qt::TimeZone et que la date et l’heure résultantes se situent dans l’heure de transition entre l’heure d’hiver et l’heure d’été, le résultat se situera juste au-delà de cet intervalle, dans le sens du changement. Si le changement a lieu à 2 h du matin et que l’horloge passe à 3 h, le résultat d’une visée comprise entre 2 h et 3 h sera ajusté pour se situer avant 2 h (si nyears < 0) ou après 3 h (dans le cas contraire).
Voir également daysTo(), addDays(), addMonths(), addSecs() et Timezone transitions.
[static, since 6.5] QDateTime QDateTime::currentDateTime(const QTimeZone &zone)
Renvoie la date et l'heure actuelles de l'horloge système, en utilisant le format de représentation du temps décrit à l'adresse zone. Si zone est omis, c'est l'heure locale qui est utilisée.
Cette fonction a été introduite dans Qt 6.5.
Voir également currentDateTimeUtc(), QDate::currentDate(), QTime::currentTime() et toTimeZone().
[static] QDateTime QDateTime::currentDateTime()
Cette fonction surcharge la méthode ` QDateTime::currentDateTime()`.
[static] QDateTime QDateTime::currentDateTimeUtc()
Renvoie la date et l'heure actuelles de l'horloge système, exprimées en UTC.
Équivalent à ` currentDateTime(QTimeZone::UTC)`.
Voir également currentDateTime(), QDate::currentDate(), QTime::currentTime() et toTimeZone().
[static noexcept] qint64 QDateTime::currentMSecsSinceEpoch()
Renvoie le nombre actuel de millisecondes écoulées depuis le début de l'année 1970, en UTC.
Ce nombre est similaire à la variable POSIX `time_t`, mais exprimé en millisecondes plutôt qu’en secondes.
Voir également currentDateTime(), currentDateTimeUtc() et toTimeZone().
[static noexcept] qint64 QDateTime::currentSecsSinceEpoch()
Renvoie le nombre de secondes écoulées depuis le début de l'année 1970, en UTC.
Ce nombre est similaire à la variable POSIX `time_t`.
Voir aussi currentMSecsSinceEpoch().
QDate QDateTime::date() const
Renvoie la partie « date » de l'objet `datetime`.
Voir également setDate(), time() et timeRepresentation().
qint64 QDateTime::daysTo(const QDateTime &other) const
Renvoie le nombre de jours entre cette date-heure et la date-heure « other ».
Le nombre de jours est calculé en fonction du nombre de fois où minuit est atteint entre cette date-heure et la date-heure de l'other. Cela signifie qu'un écart de 10 minutes entre 23 h 55 et 0 h 05 le lendemain compte pour un jour.
Si la date-heure « other » est antérieure à la date-heure actuelle, la valeur renvoyée est négative. Si l'une ou l'autre des dates-heures n'est pas valide, la valeur renvoyée est 0.
Exemple :
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);Voir également addDays(), secsTo() et msecsTo().
[static] QDateTime QDateTime::fromCFDate(CFDateRef date)
Crée un nouvel objet ` QDateTime ` contenant une copie de l'date` CFDate`.
Voir également toCFDate().
[static] QDateTime QDateTime::fromMSecsSinceEpoch(qint64 msecs, const QTimeZone &timeZone)
Renvoie une date-heure représentant un instant situé à un nombre donné msecs de millisecondes après le début, en UTC, de l'année 1970, tel que défini par timeZone. La représentation par défaut de l'heure est l'heure locale.
Notez qu’il existe des valeurs possibles pour msecs qui se situent en dehors de la plage valide de QDateTime, qu’elles soient négatives ou positives. Le comportement de cette fonction est indéfini pour ces valeurs.
Voir également fromSecsSinceEpoch(), toMSecsSinceEpoch() et setMSecsSinceEpoch().
[static] QDateTime QDateTime::fromMSecsSinceEpoch(qint64 msecs)
Cette fonction surcharge la méthode ` QDateTime::fromMSecsSinceEpoch()`.
[static] QDateTime QDateTime::fromNSDate(const NSDate *date)
Crée un nouvel objet ` QDateTime ` contenant une copie de l'objet `NSDate` ` date`.
Voir également toNSDate().
[static] QDateTime QDateTime::fromSecsSinceEpoch(qint64 secs, const QTimeZone &timeZone)
Renvoie une date-heure représentant un instant situé à secs secondes après le début de l'année 1970, en UTC, tel que défini par timeZone. La représentation par défaut de l'heure est l'heure locale.
Notez qu’il existe des valeurs possibles pour secs qui se situent en dehors de la plage valide définie par QDateTime, qu’elles soient négatives ou positives. Le comportement de cette fonction est indéfini pour ces valeurs.
Voir également fromMSecsSinceEpoch(), toSecsSinceEpoch() et setSecsSinceEpoch().
[static] QDateTime QDateTime::fromSecsSinceEpoch(qint64 secs)
Cette fonction surcharge la méthode ` QDateTime::fromSecsSinceEpoch()`.
[static, since 6.4] QDateTime QDateTime::fromStdLocalTime(const std::chrono::local_time<std::chrono::milliseconds> &time)
Crée un objet `datetime` dont la date et l'heure correspondent au nombre de millisecondes représenté par ` time`, compté à partir du 1er janvier 1970 à 00:00:00.000, en heure locale (Qt::LocalTime).
Remarque : cette fonction nécessite C++20.
Cette fonction a été introduite dans Qt 6.4.
Voir également ` toStdSysMilliseconds()` et ` 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 >; }
Crée une date-heure correspondant au même instant que time, en utilisant Qt::UTC comme représentation temporelle.
L'horloge de time doit être compatible avec std::chrono::system_clock; en particulier, une conversion prise en charge par std::chrono::clock_cast doit exister. Après la conversion, le type de durée du résultat doit être convertible en std::chrono::milliseconds.
Si ce n’est pas le cas, l’appelant doit effectuer la conversion d’horloge nécessaire vers std::chrono::system_clock ainsi que la conversion nécessaire du type de durée (cast/round/floor/ceil/...) afin que l’entrée de cette fonction satisfasse aux contraintes ci-dessus.
Remarque : cette fonction nécessite C++20.
Cette fonction a été introduite dans Qt 6.4.
Voir également toStdSysMilliseconds() et fromMSecsSinceEpoch().
[static, since 6.4] QDateTime QDateTime::fromStdTimePoint(const std::chrono::local_time<std::chrono::milliseconds> &time)
Crée un objet `datetime` dont la date et l'heure correspondent au nombre de millisecondes représenté par ` time`, compté à partir du 1er janvier 1970 à 00:00:00.000, en heure locale (Qt::LocalTime).
Remarque : cette fonction nécessite C++20.
Cette fonction a été introduite dans Qt 6.4.
Voir également toStdSysMilliseconds() et fromMSecsSinceEpoch().
[static, since 6.4] QDateTime QDateTime::fromStdTimePoint(std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds> time)
Crée un objet `datetime` représentant le même instant que ` time`, en utilisant ` Qt::UTC ` comme représentation temporelle.
Cette fonction surcharge la méthode QDateTime::fromStdTimePoint().
Cette fonction a été introduite dans Qt 6.4.
[static, since 6.4] QDateTime QDateTime::fromStdZonedTime(const std::chrono::zoned_time<std::chrono::milliseconds, const std::chrono::time_zone *> &time)
Crée un objet `datetime` représentant le même instant que ` time`. Le résultat sera exprimé dans le fuseau horaire de ` time`.
Remarque : cette fonction nécessite C++20.
Cette fonction a été introduite dans Qt 6.4.
Voir également QTimeZone, toStdSysMilliseconds() et fromMSecsSinceEpoch().
[static] QDateTime QDateTime::fromString(const QString &string, const QString &format, int baseYear, QCalendar cal)
Renvoie l'QDateTime représentée par la chaîne « string », en utilisant le format « format » fourni, ou une date-heure non valide si la chaîne ne peut pas être analysée.
Utilise l'cal du calendrier si elle est fournie, sinon le calendrier grégorien.
Lorsque format ne spécifie que les deux derniers chiffres d’une année, les 100 années commençant par baseYear sont les premières prises en compte. Avant la version 6.7, il n’existait pas de paramètre « baseYear » et l’année 1900 était toujours utilisée. C’est la valeur par défaut pour « baseYear », qui sélectionne une année comprise entre cette date et 1999. Dans certains cas, d’autres champs peuvent entraîner la sélection du siècle suivant ou précédent, afin d’obtenir un résultat cohérent avec l’ensemble des champs fournis. Voir « QDate::fromString() » pour plus de détails.
Outre les expressions reconnues dans la chaîne de format pour représenter les différentes parties de la date et de l'heure par QDate::fromString() et QTime::fromString(), cette méthode prend en charge :
| Expression | Résultat |
|---|---|
| t | le fuseau horaire (décalage, nom, « Z » ou décalage précédé de « UTC ») |
| tt | le fuseau horaire au format décalage, sans deux-points entre les heures et les minutes (par exemple « +0200 ») |
| ttt | le fuseau horaire au format décalage avec un deux-points entre les heures et les minutes (par exemple « +02:00 ») |
| tttt | le nom du fuseau horaire, soit celui renvoyé par QTimeZone::displayName() pour QTimeZone::LongName, soit l'identifiant IANA du fuseau (par exemple « Europe/Berlin »). Les noms reconnus sont ceux répertoriés sur QTimeZone, qui peuvent varier en fonction du système d'exploitation utilisé. |
Si aucun spécificateur de format « t » n’est présent, le fuseau horaire local du système est utilisé. Pour connaître les valeurs par défaut de tous les autres champs, consultez QDate::fromString() et QTime::fromString().
Par exemple :
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.Toute séquence de caractères non vide placée entre guillemets simples sera également traitée (une fois les guillemets supprimés) comme du texte et ne sera pas interprétée comme une expression. Deux guillemets simples consécutifs («''») sont interprétés comme un guillemet simple devant être trouvé dans l’entrée, plutôt que comme le début ou la fin d’une séquence littérale. Tous les autres caractères de l’entrée seront traités comme du texte littéral devant être trouvé dans la chaîne d’entrée. Par exemple :
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:02Si le format n’est pas respecté, une erreur « invalid QDateTime » est renvoyée.
Lorsque des champs numériques sont juxtaposés, sans séparateurs pour diviser les séquences de chiffres, une ambiguïté peut exister quant à savoir si certains champs, pour lesquels un seul chiffre est autorisé, utilisent deux chiffres (car la valeur à représenter est supérieure à 9). Lorsque l’attribution de deux chiffres à un tel champ en laisserait trop peu pour les autres champs, et que la lecture à un seul chiffre est cohérente avec les autres champs, cette ambiguïté peut être résolue. Dans le cas contraire (lorsque plusieurs champs peuvent comporter un seul chiffre et qu’il resterait des chiffres inutilisés si chacun n’en recevait qu’un), une résolution attribuant des chiffres supplémentaires aux champs précédents est préférée à celle qui les attribue aux champs suivants, à condition que les données restent cohérentes. Par exemple :
Les expressions qui ne comportent pas de zéros en tête (d, M, h, m, s, z) seront « gourmandes ». Cela signifie qu’elles utiliseront deux chiffres (ou trois, pour z) même si cela les fait sortir de la plage autorisée et/ou laisse trop peu de chiffres pour les autres sections.
Cela aurait pu donner le 1er janvier à 00:30.00, mais le champ M prendra deux chiffres.
Des champs de l’ string mal spécifiés entraîneront le renvoi d’une valeur « QDateTime » non valide. Seules les dates et heures comprises entre le début de l’année 100 et la fin de l’année 9999 selon l’heure locale sont prises en charge. Notez que les dates et heures proches des limites de cette plage dans d’autres fuseaux horaires, notamment l’UTC, peuvent se situer en dehors de la plage (et donc être considérées comme non valides) en fonction du fuseau horaire local.
Remarque : les nomsde jours et de mois ainsi que les indicateurs AM/PM doivent être fournis en anglais (locale C). Si vous souhaitez que les noms de mois et de jours localisés ou les formes localisées d’AM/PM soient reconnus, utilisez QLocale::system().toDateTime().
Remarque : si un caractère de format est répété un nombre de fois supérieur à celui de la plus longue expression du tableau ci-dessus qui l’utilise, cette partie du format sera interprétée comme plusieurs expressions sans séparateur entre elles ; la plus longue de celles-ci, éventuellement répétée autant de fois qu’il y a d’occurrences de ce caractère, se terminant par un résidu qui peut être une expression plus courte. Ainsi, ` 'tttttt' ` correspondrait à ` "Europe/BerlinEurope/Berlin" ` et définirait le fuseau horaire sur l’heure de Berlin ; si la chaîne date-heure contenait « Europe/BerlinZ », elle « correspondrait » mais produirait un résultat incohérent, conduisant à une date-heure non valide.
Voir également toString(), QDate::fromString(), QTime::fromString() et QLocale::toDateTime().
[static, since 6.0] QDateTime QDateTime::fromString(QStringView string, Qt::DateFormat format = Qt::TextDate)
Cette fonction surcharge la fonction ` QDateTime::fromString()`.
Cette fonction a été introduite dans Qt 6.0.
[static] QDateTime QDateTime::fromString(const QString &string, Qt::DateFormat format = Qt::TextDate)
Renvoie l'QDateTime représentée par l'string, en utilisant l'format fournie, ou une date-heure non valide si cela n'est pas possible.
Remarque concernant Qt::TextDate: seuls les noms de mois courts en anglais (par exemple « Jan » sous sa forme abrégée ou « January » sous sa forme complète) sont reconnus.
Il s'agit d'une fonction surchargée.
Voir également toString() et QLocale::toDateTime().
[static, since 6.0] QDateTime QDateTime::fromString(QStringView string, QStringView format, QCalendar cal)
Cette fonction surcharge la fonction ` QDateTime::fromString()`.
Cette fonction a été introduite dans Qt 6.0.
[static, since 6.7] QDateTime QDateTime::fromString(QStringView string, QStringView format, int baseYear = QLocale::DefaultTwoDigitBaseYear)
Utilise un objet ` QCalendar` construit par défaut.
Cette fonction surcharge la méthode QDateTime::fromString().
Cette fonction a été introduite dans Qt 6.7.
[static, since 6.0] QDateTime QDateTime::fromString(const QString &string, QStringView format, QCalendar cal)
Cette fonction surcharge la fonction ` QDateTime::fromString()`.
Cette fonction a été introduite dans Qt 6.0.
[static, since 6.7] QDateTime QDateTime::fromString(const QString &string, QStringView format, int baseYear = QLocale::DefaultTwoDigitBaseYear)
Utilise un objet ` QCalendar` construit par défaut.
Cette fonction surcharge la méthode QDateTime::fromString().
Cette fonction a été introduite dans Qt 6.7.
[static] QDateTime QDateTime::fromString(const QString &string, const QString &format, QCalendar cal)
Cette fonction surcharge la méthode ` QDateTime::fromString()`.
[static, since 6.7] QDateTime QDateTime::fromString(const QString &string, const QString &format, int baseYear = QLocale::DefaultTwoDigitBaseYear)
Utilise un objet ` QCalendar` construit par défaut.
Cette fonction surcharge la méthode QDateTime::fromString().
Cette fonction a été introduite dans Qt 6.7.
[static, since 6.7] QDateTime QDateTime::fromString(QStringView string, QStringView format, int baseYear, QCalendar cal)
Cette fonction surcharge la fonction ` QDateTime::fromString()`.
Cette fonction a été introduite dans Qt 6.7.
[static, since 6.0] QDateTime QDateTime::fromString(const QString &string, QStringView format, int baseYear, QCalendar cal)
Cette fonction surcharge la fonction ` QDateTime::fromString()`.
Cette fonction a été introduite dans Qt 6.0.
bool QDateTime::isDaylightTime() const
Renvoie une valeur indiquant si cette date-heure se situe pendant la période d'heure d'été.
Si l'Qt::TimeSpec n'est pas Qt::LocalTime ou Qt::TimeZone, la fonction renvoie toujours false.
Voir aussi timeSpec().
bool QDateTime::isNull() const
Renvoie « true » si la date et l'heure sont toutes deux nulles ; sinon, renvoie « false ». Une date-heure nulle n'est pas valide.
Voir également QDate::isNull(), QTime::isNull() et isValid().
bool QDateTime::isValid() const
Renvoie « true » si cette date-heure correspond à un moment précis, sinon « false ».
Une date-heure est valide si sa date et son heure sont toutes deux valides et si le format d'heure utilisé donne un sens valide à leur combinaison. Lorsque la représentation de l’heure correspond à un fuseau horaire spécifique ou à l’heure locale, il peut arriver que, pour certaines dates, le fuseau horaire saute des intervalles dans sa représentation, comme lors d’un changement d’heure d’été où une heure est sautée (généralement pendant une nuit au printemps). Par exemple, si l’heure d’été prend fin à 2 h du matin et que l’horloge passe directement à 3 h, alors les dates-heures comprises entre 02:00:00 et 02:59:59,999 ce jour-là ne sont pas valides.
Voir également QDateTime::YearRange, QDate::isValid() et QTime::isValid().
qint64 QDateTime::msecsTo(const QDateTime &other) const
Renvoie le nombre de millisecondes séparant cette date-heure de la date-heure « other ».
Avant d'effectuer la comparaison, les deux dates/heures sont converties au format « Qt::UTC » afin de garantir l'exactitude du résultat si l'heure d'été (DST) s'applique à l'une des deux dates/heures mais pas à l'autre.
Si la date-heure « other » est antérieure à la présente date-heure, la valeur renvoyée est négative. Renvoie 0 si l’une des deux dates-heures n’est pas valide.
Voir également addMSecs(), daysTo() et QTime::msecsTo().
int QDateTime::offsetFromUtc() const
Renvoie le décalage de cette date-heure par rapport à l'UTC, en secondes.
Le résultat dépend de la fonction ` timeSpec()` :
Qt::UTCLe décalage est égal à 0.Qt::OffsetFromUTCLe décalage correspond à la valeur initialement définie.Qt::LocalTimeLe décalage de l'heure locale par rapport à l'UTC est renvoyé.Qt::TimeZoneLe décalage utilisé par le fuseau horaire est renvoyé.
Pour les deux derniers cas, c'est le décalage à cette date et à cette heure qui est renvoyé, en tenant compte du décalage lié à l'heure d'été. Le décalage correspond à la différence entre l’heure locale ou l’heure dans le fuseau horaire donné et l’heure UTC ; il est positif dans les fuseaux horaires en avance sur l’UTC (à l’est du méridien d’origine), et négatif dans ceux en retard sur l’UTC (à l’ouest du méridien d’origine).
Voir également setTimeZone().
qint64 QDateTime::secsTo(const QDateTime &other) const
Renvoie le nombre de secondes entre cette date-heure et la date-heure other.
Avant d’effectuer la comparaison, les deux dates/heures sont converties au format « Qt::UTC » afin de garantir l’exactitude du résultat si l’heure d’été (DST) s’applique à l’une des deux dates/heures mais pas à l’autre.
Si la date-heure « other » est antérieure à cette date-heure, la valeur renvoyée est négative. Renvoie 0 si l'une des deux dates-heures n'est pas valide.
Exemple :
QDateTime now = QDateTime::currentDateTime();
QDateTime xmas(QDate(now.date().year(), 12, 25).startOfDay());
qDebug("There are %d seconds to Christmas", now.secsTo(xmas));Voir également addSecs(), daysTo() et QTime::secsTo().
void QDateTime::setDate(QDate date, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior)
Définit la partie « date » de cette date-heure sur date.
Si aucune heure n’est encore définie, elle est fixée à minuit. Si date n’est pas valide, cette QDateTime devient invalide.
Si date et time() décrivent un moment proche d’une transition pour la représentation temporelle de cette date-heure, resolve contrôle la manière dont cette situation est résolue.
Remarque : avant Qt 6.7, la version de cette fonction ne disposait pas du paramètre « resolve » et ne permettait donc pas de résoudre les ambiguïtés liées aux transitions.
Voir également date(), setTime() et setTimeZone().
void QDateTime::setMSecsSinceEpoch(qint64 msecs)
Définit la date-heure de manière à représenter un instant situé à un nombre donné, msecs, de millisecondes après le début, en UTC, de l'année 1970.
Sur les systèmes ne prenant pas en charge les fuseaux horaires, cette fonction se comportera comme si l'heure locale était Qt::UTC.
Notez que le fait de passer la valeur minimale de qint64 (std::numeric_limits<qint64>::min()) à msecs entraînera un comportement indéfini.
Voir également setSecsSinceEpoch(), toMSecsSinceEpoch() et fromMSecsSinceEpoch().
void QDateTime::setSecsSinceEpoch(qint64 secs)
Définit la date et l'heure de manière à représenter un instant situé à un nombre donné, secs, de secondes après le début de l'année 1970, en UTC.
Sur les systèmes ne prenant pas en charge les fuseaux horaires, cette fonction se comporte comme si l'heure locale était Qt::UTC.
Voir également setMSecsSinceEpoch(), toSecsSinceEpoch() et fromSecsSinceEpoch().
void QDateTime::setTime(QTime time, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior)
Définit la partie « heure » de cette date-heure sur time. Si time n'est pas valide, cette fonction la définit sur minuit. Il est donc possible d'effacer toute heure définie dans une QDateTime en la remettant à la valeur par défaut QTime:
Si date() et time décrivent un moment proche d’une transition pour la représentation temporelle de cette date-heure, resolve contrôle la manière dont cette situation est résolue.
Remarque : avant Qt 6.7, la version de cette fonction ne disposait pas du paramètre ` resolve ` et ne permettait donc pas de résoudre les ambiguïtés liées aux transitions.
Voir également time(), setDate() et setTimeZone().
void QDateTime::setTimeZone(const QTimeZone &toZone, QDateTime::TransitionResolution resolve = TransitionResolution::LegacyBehavior)
Définit le fuseau horaire utilisé pour cette date-heure sur toZone.
La date-heure peut se référer à un moment différent. Elle utilise la représentation temporelle de toZone, ce qui peut modifier la signification de ses méthodes inchangées date() et time().
Si toZone n'est pas valide, alors la date-heure sera invalide. Dans le cas contraire, la valeur de timeSpec() de cette date-heure après l'appel correspondra à celle de toZone.timeSpec().
Si date() et time() décrivent un moment proche d’une transition pour toZone, resolve contrôle la manière dont cette situation est résolue.
Remarque : avant la version Qt 6.7, cette fonction ne disposait pas du paramètre resolve et ne permettait donc pas de résoudre les ambiguïtés liées aux transitions.
Voir également timeRepresentation(), timeZone() et Qt::TimeSpec.
[noexcept] void QDateTime::swap(QDateTime &other)
Permute cette date-heure avec celle de other. Cette opération est très rapide et ne rencontre jamais d'échec.
QTime QDateTime::time() const
Renvoie la partie « heure » de la date-heure.
Voir également setTime(), date() et timeRepresentation().
[since 6.5] QTimeZone QDateTime::timeRepresentation() const
Renvoie un objet « QTimeZone » indiquant comment cette date-heure représente le temps.
L'timeSpec() de l'QTimeZone renvoyé coïncidera avec celui de cette date-heure ; s'il n'est pas Qt::TimeZone, alors l'QTimeZone renvoyé est une représentation de l'heure. Lorsque leur timeSpec() est Qt::OffsetFromUTC, la fonction fixedSecondsAheadOfUtc() de l'QTimeZone renvoyé fournit le décalage. Lorsque timeSpec() est Qt::TimeZone, l'objet QTimeZone lui-même constitue la représentation complète de ce fuseau horaire.
Cette fonction a été introduite dans Qt 6.5.
Voir également timeZone(), setTimeZone() et QTimeZone::asBackendZone().
Qt::TimeSpec QDateTime::timeSpec() const
Renvoie la spécification temporelle de la date-heure.
Cela classe sa représentation temporelle comme heure locale, UTC, un décalage fixe par rapport à l'UTC (sans indiquer ce décalage) ou un fuseau horaire (sans donner les détails de ce fuseau horaire). Équivalent à ` timeRepresentation().timeSpec()`.
Voir également setTimeZone(), timeRepresentation(), date() et time().
QTimeZone QDateTime::timeZone() const
Renvoie le fuseau horaire de la date-heure.
Le résultat est identique à celui de la méthode ` timeRepresentation().asBackendZone()`. Dans tous les cas, la méthode ` timeSpec()` du résultat renvoie ` Qt::TimeZone`.
Lorsque timeSpec() est Qt::LocalTime, le résultat indique l'heure locale au moment où cette méthode a été appelée. Il ne tiendra pas compte des modifications ultérieures apportées au fuseau horaire du système, même si l'QDateTime à partir de laquelle il a été obtenu en tient compte.
Voir également timeRepresentation(), setTimeZone(), Qt::TimeSpec et QTimeZone::asBackendZone().
QString QDateTime::timeZoneAbbreviation() const
Renvoie l'abréviation du fuseau horaire correspondant à cette date-heure.
La chaîne renvoyée dépend de la fonction timeSpec() :
- Pour Qt::UTC, elle est « UTC ».
- Pour Qt::OffsetFromUTC, elle se présente sous la forme « UTC±00:00 ».
- Pour Qt::LocalTime, le système hôte est interrogé.
- Pour Qt::TimeZone, l’objet QTimeZone associé est interrogé.
Remarque : l’ unicitéde l’abréviation n’est pas garantie ; en d’autres termes, des fuseaux horaires différents peuvent avoir la même abréviation. Pour les fonctions ` Qt::LocalTime ` et ` Qt::TimeZone`, lorsque l’abréviation est renvoyée par le système hôte, elle peut être localisée.
Voir également timeSpec() et QTimeZone::abbreviation().
CFDateRef QDateTime::toCFDate() const
Crée un objet CFDate à partir d'un objet ` QDateTime`.
L'appelant est propriétaire de l'objet CFDate et est chargé de le libérer.
Voir également fromCFDate().
QDateTime QDateTime::toLocalTime() const
Renvoie une copie de cette date-heure convertie à l'heure locale.
Le résultat représente le même instant que cette date-heure et est égal à celle-ci.
Exemple :
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);Voir également toTimeZone(), toUTC() et toOffsetFromUtc().
qint64 QDateTime::toMSecsSinceEpoch() const
Renvoie la date et l'heure sous la forme d'un nombre de millisecondes écoulées depuis le début de l'année 1970, en UTC.
Sur les systèmes ne prenant pas en charge les fuseaux horaires, cette fonction se comporte comme si l'heure locale était Qt::UTC.
Le comportement de cette fonction est indéfini si la date-heure stockée dans cet objet n’est pas valide. Cependant, pour toutes les dates valides, cette fonction renvoie une valeur unique.
Voir également toSecsSinceEpoch(), setMSecsSinceEpoch() et fromMSecsSinceEpoch().
NSDate *QDateTime::toNSDate() const
Crée un objet NSDate à partir d’une instance de ` QDateTime`.
L'objet NSDate est libéré automatiquement.
Voir aussi fromNSDate().
QDateTime QDateTime::toOffsetFromUtc(int offsetSeconds) const
Renvoie une copie de cette date-heure convertie au format Qt::OffsetFromUTC avec l'offsetSeconds spécifiée. Équivalent à toTimeZone(QTimeZone::fromSecondsAheadOfUtc(offsetSeconds)).
Si l'offsetSeconds est égal à 0, une date-heure UTC sera renvoyée.
Le résultat représente le même instant que cette date-heure et lui est égal.
Voir également offsetFromUtc() et toTimeZone().
qint64 QDateTime::toSecsSinceEpoch() const
Renvoie la date et l'heure sous forme de nombre de secondes écoulées depuis le début de l'année 1970, en UTC.
Sur les systèmes ne prenant pas en charge les fuseaux horaires, cette fonction se comporte comme si l'heure locale était Qt::UTC.
Le comportement de cette fonction est indéfini si la date-heure stockée dans cet objet n’est pas valide. Cependant, pour toutes les dates valides, cette fonction renvoie une valeur unique.
Voir également toMSecsSinceEpoch(), fromSecsSinceEpoch() et setSecsSinceEpoch().
[since 6.4] std::chrono::sys_time<std::chrono::milliseconds> QDateTime::toStdSysMilliseconds() const
Convertit cet objet `datetime` en un instant équivalent exprimé en millisecondes, en utilisant ` std::chrono::system_clock ` comme horloge.
Remarque : cette fonction nécessite C++20.
Cette fonction a été introduite dans Qt 6.4.
Voir également ` fromStdTimePoint()` et ` toMSecsSinceEpoch()`.
[since 6.4] std::chrono::sys_seconds QDateTime::toStdSysSeconds() const
Convertit cet objet « datetime » en un instant équivalent exprimé en secondes, en utilisant std::chrono::system_clock comme horloge.
Remarque : cette fonction nécessite C++20.
Cette fonction a été introduite dans Qt 6.4.
Voir également ` fromStdTimePoint()` et ` toSecsSinceEpoch()`.
QString QDateTime::toString(const QString &format, QCalendar cal) const
QString QDateTime::toString(QStringView format, QCalendar cal) const
Renvoie la date et l'heure sous forme de chaîne de caractères. Le paramètre « format » détermine le format de la chaîne de résultat. Si « cal » est fourni, il détermine le calendrier utilisé pour représenter la date ; par défaut, c'est le calendrier grégorien. Avant Qt 5.14, le paramètre « cal » n'existait pas et le calendrier grégorien était toujours utilisé. Voir QTime::toString() et QDate::toString() pour connaître les spécificateurs pris en charge respectivement pour l’heure et la date dans le paramètre format.
Toute séquence non vide de caractères placée entre guillemets simples sera incluse telle quelle dans la chaîne de sortie (sans les guillemets), même si elle contient des caractères de mise en forme. Deux guillemets simples consécutifs («''») sont remplacés par un seul guillemet simple dans la sortie, au lieu de marquer le début ou la fin d’une séquence littérale. Tous les autres caractères de la chaîne de format sont inclus tels quels dans la chaîne de sortie.
Les formats sans séparateurs (par exemple « ddMM ») sont pris en charge mais doivent être utilisés avec précaution, car les chaînes résultantes ne sont pas toujours lisibles de manière fiable (par exemple, si « dM » produit « 212 », cela pourrait signifier soit le 2 décembre, soit le 21 février).
Exemples de chaînes de format (en supposant que l'QDateTime e soit le 21 mai 2001 à 14 h 13 min 09,120 s) :
| Format | Résultat |
|---|---|
| jj.MM.aaaa | 21.05.2001 |
| jjj MMMM d aaa | mardi 21 mai 01 |
| hh:mm:ss.zzz | 14:13:09.120 |
| hh:mm:ss.z | 14:13:09.12 |
| h:m:s ap | 14 h 13 min 9 s |
Si la date-heure n'est pas valide, une chaîne vide sera renvoyée.
Remarque : les nomsdes jours et des mois, ainsi que les indicateurs AM/PM, sont fournis en anglais (locale C). Pour obtenir les noms des mois et des jours localisés ainsi que les formes localisées d’AM/PM, utilisez QLocale::system().toDateTime().
Voir également fromString(), QDate::toString(), QTime::toString() et QLocale::toString().
QString QDateTime::toString(QStringView format) const
Cette fonction surcharge la méthode ` QDateTime::toString()`.
QString QDateTime::toString(Qt::DateFormat format = Qt::TextDate) const
Renvoie la date-heure sous forme de chaîne de caractères selon le format format.
Si l'format est Qt::TextDate, la chaîne est formatée selon le format par défaut. Les noms des jours et des mois seront en anglais. Un exemple de ce format est « Wed May 20 03:40:13 1998 ». Pour le formatage localisé, voir QLocale::toString().
Si l’ format est Qt::ISODate, le format de la chaîne correspond à la spécification étendue ISO 8601 pour la représentation des dates et des heures, prenant la forme yyyy-MM-ddTHH:mm:ss[Z|±HH:mm], en fonction de l’ timeSpec() de l’ QDateTime. Si l’ timeSpec() est Qt::UTC, Z sera ajouté à la chaîne ; si l’ timeSpec() est Qt::OffsetFromUTC, le décalage en heures et minutes par rapport à l’UTC sera ajouté à la chaîne. Pour inclure les millisecondes dans la date au format ISO 8601, utilisez la fonction format Qt::ISODateWithMs , qui correspond à yyyy-MM-ddTHH:mm:ss.zzz[Z|±HH:mm].
Si l’ format est Qt::RFC2822Date, la chaîne est formatée conformément à la norme RFC 2822.
Si la date-heure n'est pas valide, une chaîne vide sera renvoyée.
Avertissement : le format Qt::ISODate n'est valide que pour les années comprises entre 0 et 9999.
Cette fonction surcharge la fonction QDateTime::toString().
Voir également fromString(), QDate::toString(), QTime::toString() et QLocale::toString().
QString QDateTime::toString(const QString &format) const
Cette fonction surcharge la méthode ` QDateTime::toString()`.
QDateTime QDateTime::toTimeZone(const QTimeZone &timeZone) const
Renvoie une copie de cette date-heure convertie au format « timeZone » spécifié.
Le résultat représente le même instant que cette date-heure et est égal à celle-ci.
Le résultat décrit l'instant selon la représentation temporelle d'timeZone. Par exemple :
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);Si timeZone n'est pas valide, la date-heure sera invalide. Sinon, la méthode timeSpec() de la date-heure renvoyée correspondra à timeZone.timeSpec().
Voir également timeRepresentation(), toLocalTime(), toUTC() et toOffsetFromUtc().
QDateTime QDateTime::toUTC() const
Renvoie une copie de cette date-heure convertie en UTC.
Le résultat représente le même instant que cette date-heure et est égal à celle-ci.
Exemple :
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);Voir également toTimeZone(), toLocalTime() et toOffsetFromUtc().
[since 6.4] QDateTime &QDateTime::operator+=(std::chrono::milliseconds duration)
Modifie cet objet « datetime » en y ajoutant l'duration spécifiée.
L'objet mis à jour sera postérieur si duration est positif, ou antérieur s’il est négatif. Renvoie une référence à cet objet datetime.
Si cet objet datetime n'est pas valide, cette fonction n'a aucun effet.
Cette fonction a été introduite dans Qt 6.4.
Voir également addMSecs().
[since 6.4] QDateTime &QDateTime::operator-=(std::chrono::milliseconds duration)
Modifie cet objet « datetime » en soustrayant l'duration e indiquée.
L'objet mis à jour sera antérieur si duration est positif, ou postérieur s'il est négatif. Renvoie une référence à cet objet datetime.
Si cet objet datetime n'est pas valide, cette fonction n'a aucun effet.
Cette fonction a été introduite dans Qt 6.4.
Voir également addMSecs.
[noexcept] QDateTime &QDateTime::operator=(const QDateTime &other)
Copie la date-heure de other dans cette variable et renvoie cette copie.
Personnes concernées non membres
[noexcept] bool operator!=(const QDateTime &lhs, const QDateTime &rhs)
Renvoie ` true ` si ` lhs ` est différent de ` rhs` ; sinon, renvoie ` false`.
Deux dates-heures utilisant des représentations temporelles différentes peuvent présenter des décalages différents par rapport à l'UTC. Dans ce cas, elles peuvent être considérées comme équivalentes même si leurs valeurs date() et time() diffèrent, à condition que cette différence corresponde au décalage par rapport à l'UTC. Si leurs valeurs date() et time() coïncident, celle qui présente le décalage le plus important par rapport à l'UTC est inférieure (antérieure) à celle dont le décalage est le plus faible. Par conséquent, les dates-heures ne sont que faiblement ordonnées.
Depuis la version 5.14, toutes les dates-heures non valides sont équivalentes et antérieures à toutes les dates-heures valides.
Voir également 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)
Renvoie un objet ` QDateTime ` contenant une date-heure ` duration ` correspondant à un moment situé `milliseconds` après ` dateTime ` (ou avant si ` duration ` est négatif).
Si dateTime n’est pas valide, une date-heure non valide sera renvoyée.
Ces fonctions ont été introduites dans Qt 6.4.
Voir également addMSecs().
[since 6.4] std::chrono::milliseconds operator-(const QDateTime &lhs, const QDateTime &rhs)
Renvoie le temps, en millisecondes, entre lhs et rhs.
Si lhs est antérieur à rhs, le résultat sera négatif. Renvoie 0 ms si l'une ou l'autre des dates-heures n'est pas valide.
Cette fonction a été introduite dans Qt 6.4.
Voir également msecsTo().
[since 6.4] QDateTime operator-(const QDateTime &dateTime, std::chrono::milliseconds duration)
Renvoie un objet ` QDateTime ` contenant une date-heure ` duration ` antérieure de `milliseconds` à ` dateTime ` (ou postérieure si ` duration ` est négatif).
Si dateTime n’est pas valide, une date et une heure non valides seront renvoyées.
Cette fonction a été introduite dans Qt 6.4.
Voir également addMSecs().
[noexcept] bool operator<(const QDateTime &lhs, const QDateTime &rhs)
Renvoie ` true ` si ` lhs ` est antérieur à ` rhs` ; sinon, renvoie ` false`.
Deux dates-heures utilisant des représentations temporelles différentes peuvent présenter des décalages différents par rapport à l’UTC. Dans ce cas, elles peuvent être considérées comme équivalentes même si leurs valeurs date() et time() diffèrent, à condition que cette différence corresponde au décalage par rapport à l’UTC. Si leurs valeurs date() et time() coïncident, celle qui présente le plus grand décalage par rapport à l’UTC est inférieure (antérieure) à celle qui présente le plus petit décalage. Par conséquent, les dates-heures ne sont que faiblement ordonnées.
Depuis la version 5.14, toutes les dates-heures non valides sont équivalentes et antérieures à toutes les dates-heures valides.
Voir également operator==().
QDataStream &operator<<(QDataStream &out, const QDateTime &dateTime)
Écrit dateTime dans le flux out.
Voir également Sérialisation des types de données Qt.
[noexcept] bool operator<=(const QDateTime &lhs, const QDateTime &rhs)
Renvoie ` true ` si ` lhs ` est antérieur ou égal à ` rhs` ; sinon, renvoie ` false`.
Deux dates-heures utilisant des représentations temporelles différentes peuvent présenter des décalages différents par rapport à l’UTC. Dans ce cas, elles peuvent être considérées comme équivalentes même si leurs valeurs date() et time() diffèrent, à condition que cette différence corresponde au décalage par rapport à l’UTC. Si leurs valeurs date() et time() coïncident, celle présentant le décalage le plus important par rapport à l’UTC est inférieure (antérieure) à celle présentant le décalage le plus faible. Par conséquent, les dates-heures ne sont que faiblement ordonnées.
Depuis la version 5.14, toutes les dates-heures non valides sont équivalentes et antérieures à toutes les dates-heures valides.
Voir également la fonction ` operator==()`.
[noexcept] bool operator==(const QDateTime &lhs, const QDateTime &rhs)
Renvoie ` true ` si ` lhs ` correspond au même instant que ` rhs` ; sinon, renvoie ` false`.
Deux dates-heures utilisant des représentations temporelles différentes peuvent présenter des décalages différents par rapport à l’UTC. Dans ce cas, elles peuvent être considérées comme équivalentes même si leurs valeurs date() et time() diffèrent, à condition que cette différence corresponde au décalage par rapport à l’UTC. Si leurs valeurs date() et time() coïncident, celle qui présente le plus grand décalage par rapport à l’UTC est inférieure (antérieure) à celle qui présente le plus petit décalage. Par conséquent, les dates-heures ne sont que faiblement ordonnées.
Depuis la version 5.14, toutes les dates-heures non valides sont équivalentes et antérieures à toutes les dates-heures valides.
Voir également operator!=(), operator<(), operator<=(), operator>() et operator>=().
[noexcept] bool operator>(const QDateTime &lhs, const QDateTime &rhs)
Renvoie « true » si « lhs » est postérieur à « rhs » ; sinon, renvoie « false ».
Deux dates-heures utilisant des représentations temporelles différentes peuvent présenter des décalages différents par rapport à l'UTC. Dans ce cas, elles peuvent être considérées comme équivalentes même si leurs valeurs date() et time() diffèrent, à condition que cette différence corresponde au décalage par rapport à l'UTC. Si leurs valeurs date() et time() coïncident, celle qui présente le plus grand décalage par rapport à l'UTC est inférieure (antérieure) à celle qui présente le plus petit décalage. Par conséquent, les dates-heures ne sont que faiblement ordonnées.
Depuis la version 5.14, toutes les dates-heures non valides sont équivalentes et antérieures à toutes les dates-heures valides.
Voir également operator==().
[noexcept] bool operator>=(const QDateTime &lhs, const QDateTime &rhs)
Renvoie ` true ` si ` lhs ` est postérieur ou égal à ` rhs` ; sinon, renvoie ` false`.
Deux dates-heures utilisant des représentations temporelles différentes peuvent présenter des décalages différents par rapport à l’UTC. Dans ce cas, elles peuvent être considérées comme équivalentes même si leurs valeurs date() et time() diffèrent, à condition que cette différence corresponde au décalage par rapport à l’UTC. Si leurs valeurs date() et time() coïncident, celle qui présente le plus grand décalage par rapport à l’UTC est inférieure (antérieure) à celle qui présente le plus petit décalage. Par conséquent, les dates-heures ne sont que faiblement ordonnées.
Depuis la version 5.14, toutes les dates et heures non valides sont équivalentes et antérieures à toutes les dates et heures valides.
Voir également operator==().
QDataStream &operator>>(QDataStream &in, QDateTime &dateTime)
Lit une date-heure à partir du flux in et l'enregistre dans dateTime.
Voir également Sérialisation des types de données Qt.
© 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.