Qt 您所在的位置:网站首页 Timespec Qt

Qt

2022-12-24 08:28| 来源: 网络整理| 查看: 265

QDateTime Class

QDateTime类提供日期和时间函数。更多的...

Header: #include CMake: find_package(Qt6 COMPONENTS Core REQUIRED)target_link_libraries(mytarget PRIVATE Qt6::Core) qmake: QT +=核心 所有成员的列表,包括继承的成员

注意:此类中的所有函数都是reentent。

Public Types enum class 年份范围{ 第一,最后 } Public Functions QDateTime(QDateTime &&other) QDateTime (常量 QDateTime &other) QDateTime(QDatedate, QTimetime,const QTimeZone和timeZone) QDateTime(QDatedate, QTimetime, Qt::TimeSpecspec= Qt :: LocalTime,intoffsetSeconds= 0) QDateTime() QDateTime & 运算符 = (const QDateTime &other) ~QDateTime() QDateTime addDays(qint64ndays) const QDateTime addMSecs(qint64msecs) const QDateTime addMonths(intnmonths) const QDateTime addSecs(qint64s) const QDateTime addYears(intnyears) 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(QDatedate) void setMSecsSinceEpoch(qint64msecs) void setOffsetFromUtc(intoffsetSeconds) void setSecsSinceEpoch(qint64secs) void setTime(QTimetime) void setTimeSpec(Qt::TimeSpecspec) void setTimeZone(const QTimeZone &toZone) void swap(QDateTime &other) QTime time() 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(intoffsetSeconds) const qint64 toSecsSinceEpoch() const QString toString(const QString &format, QCalendarcal= QCalendar())常量 QString toString(Qt::DateFormatformat= Qt :: TextDate)常量 QString toString(QStringViewformat, QCalendarcal= QCalendar())常量 QDateTime toTimeSpec(Qt::TimeSpecspec) const QDateTime toTimeZone(const QTimeZone &timeZone) const QDateTime toUTC() const 静态公共成员 QDateTime currentDateTime() QDateTime currentDateTimeUtc() qint64 currentMSecsSinceEpoch() qint64 currentSecsSinceEpoch() QDateTime fromCFDate(CFDateRefdate) QDateTime fromMSecsSinceEpoch(qint64msecs, Qt::TimeSpecspec= Qt :: LocalTime,intoffsetSeconds= 0) QDateTime fromMSecsSinceEpoch(qint64msecs,const QTimeZone和timeZone) QDateTime fromNSDate(const NSDate *date) QDateTime fromSecsSinceEpoch(qint64secs, Qt::TimeSpecspec= Qt :: LocalTime,intoffsetSeconds= 0) QDateTime fromSecsSinceEpoch(qint64secs,const QTimeZone和timeZone) QDateTime fromString(const QString &string, Qt::DateFormatformat= Qt::TextDate) QDateTime fromString(QStringViewstring, Qt::DateFormatformat= Qt::TextDate) QDateTime fromString(QStringViewstring, QStringViewformat, QCalendarcal= QCalendar()) QDateTime fromString(const QString &string, QStringViewformat, QCalendarcal= QCalendar()) QDateTime fromString(const QString &string,const QString&format, QCalendarcal= QCalendar()) Related Non-Members bool 运算符!= (const QDateTime &lhs,const QDateTime和rhs) bool 运算符operator运算符运算符== (const QDateTime &lhs,const QDateTime和rhs) bool 运算符> (const QDateTime &lhs,const QDateTime和rhs) bool 运算符>= (const QDateTime &lhs,const QDateTime和rhs) QDataStream & operator>>(QDataStream &in,QDateTime和dateTime) Detailed Description

QDateTime对象对日历日期和时钟时间(“ datetime”)进行编码。它结合了QDate和QTime类的功能。它可以从系统时钟读取当前日期时间。它提供了用于比较日期时间并通过添加秒数,天数,月数或年数来操纵日期时间的功能。

QDateTime 可以与QTimeZone类一起描述相对于本地时间、UTC、与 UTC 的指定偏移量或指定时区相关的日期时间。例如,“欧洲/柏林”时区将应用德国使用的夏令时规则。相比之下,与 UTC +3600 秒的偏移比 UTC 早一小时(通常以 ISO 标准表示法写为“UTC+01:00”),没有夏令时偏移或更改。使用本地时间或指定时区时,会考虑时区转换,例如夏令时(DST;但见下文)的开始和结束。用于表示日期时间的系统选择被描述为它的“时间规范”。

QDateTime 对象通常通过在构造函数中显式给出日期和时间来创建,或者通过使用诸如currentDateTime () 或fromMSecsSinceEpoch () 之类的静态函数来创建。可以使用setDate () 和setTime () 更改日期和时间。还可以使用setMSecsSinceEpoch () 函数设置日期时间,该函数从 1970 年 1 月 1 日 00:00:00 开始计算时间,以毫秒为单位。fromString () 函数返回一个 QDateTime,给定一个字符串和一个用于解释字符串中的日期。

QDateTime::currentDateTime () 返回一个表示当前时间相对于本地时间的 QDateTime。QDateTime::currentDateTimeUtc () 返回一个 QDateTime,它表示相对于 UTC 的当前时间。

date () 和time () 函数提供对日期时间的日期和时间部分的访问。toString () 函数以文本格式提供相同的信息。

QDateTime提供了一套完整的运算符来比较两个QDateTime对象,其中较小的表示较早,较大的表示较晚。

您可以使用 addMSecs () 将日期时间增加(或减少)给定的毫秒数,使用addSecs () 增加(或减少)秒数,或使用addDays ()增加天数。同样,您可以使用addMonths () 和addYears ()。daysTo ()函数返回两个日期时间之间的天数,secsTo ()返回两个日期时间之间的秒数,msecsTo ()返回两个日期时间之间的毫秒数。这些操作在适用的情况下了解夏令时 (DST) 和其他时区转换。

使用toTimeSpec () 以本地时间或 UTC 表示日期时间,toOffsetFromUtc () 以相对于 UTC 的偏移量表示,或toTimeZone () 以相对于一般时区的方式表示。您可以使用timeSpec () 找出 QDateTime 对象存储其时间的相对时间规范。当那是Qt::TimeZone 时,您可以使用timeZone () 找出它正在使用哪个区域。

注意: QDateTime不占leap秒。

Remarks

注意:所有与字符串格式之间的转换都是使用C语言环境完成的。有关本地化的转换,请参见QLocale。

注意:公历中没有0年。该年中的日期被认为是无效的。-1年是“基督之前1年”或“普通时代之前1年”。公元1年1月1日之前的日期是公元前12月31日。

有效日期范围

QDateTime 可以表示的值范围取决于内部存储实现。QDateTime 当前存储在 qint64 中,作为对日期和时间进行编码的串行毫秒值。这将日期范围限制在大约 +/- 2.92 亿年,而QDate范围为 +/- 20 亿年。创建具有极值的 QDateTime 时必须小心,以免溢出存储。支持值的确切范围取决于Qt::TimeSpec和时区。

时区的使用

QDateTime使用系统的时区信息来确定当前的本地时区及其与UTC的偏移。如果系统配置不正确或不是最新的,QDateTime会给出错误的结果。

QDateTime同样使用系统提供的信息来确定其他时区与UTC的偏移量。如果此信息不完整或过时,则QDateTime将给出错误的结果。有关更多详细信息,请参见QTimeZone文档。

在现代Unix系统上,这意味着QDateTime通常尽可能地拥有准确的历史时间转换信息(包括DST,见下文)。在Windows系统中,由于系统不支持历史时区数据,因此不能保持时区转换的历史准确性,特别是包括DST。

夏令时

QDateTime考虑到了标准时间和夏令时之间的转换。例如,如果转换是在凌晨2点,时钟向前走到凌晨3点,那么从02:00:00到02:59:59.999有一个 "缺失 "的小时,QDateTime认为这个小时是无效的。任何日期运算都会考虑到这个缺失的小时,并返回一个有效的结果。例如,在01:59:59的基础上加1分钟将得到03:00:00。

对于系统 time_t 可以表示的日期时间(在具有 32 位 time_t 的系统上从 1901-12-14 到 2038-01-18 ;对于全范围 QDateTime 可以表示类型是否为 64 位),标准系统API 用于确定本地时间与 UTC 的偏移量。对于这些系统 API 未处理的日期时间,使用QTimeZone::systemTimeZone ()。在任何一种情况下,所使用的偏移信息都取决于系统,并且可能不完整,或者对于过去的历史而言,是不准确的。无论如何,对于未来的日期,当地时区的偏移量和 DST 规则可能会在该日期到来之前发生变化。

与世界协调时的偏移

与 UTC 的偏移量没有明确的大小限制,但在使用使用 [+|-]hh:mm 格式的toString () 和fromString () 方法时有一个隐式限制,有效地将范围限制为 +/ - 99 小时 59 分钟和整分钟。请注意,目前没有时区的偏移量超出 ±14 小时的范围,并且所有已知的偏移量都是五分钟的倍数。

又见QDATE,QTIME,QDateTimeEdit和QTimeZone。

© The Qt Company LtdLicensed under the GNU Free Documentation License, Version 1.3. https://doc.qt.io/qt-6.2/qdatetime.html 1 … 541 542 543 544 545 … 3810 Next 成员类型 文件


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有