wordpress+登录404,seo咨询推广,h5网站开发总结,电子商务网站运营一、前言 时间类QDateTime、QDate、QTime、QTimeZone保存了Qt的时间、日期、时区信息#xff0c;常用的时间类部件都会用到这些数据结构#xff0c;常用概念有年、月、日、时、分、秒、毫秒和时区#xff0c;时间和时区就关系到时间戳和UTC的概念。 UTC时间#xff0c;又称…一、前言 时间类QDateTime、QDate、QTime、QTimeZone保存了Qt的时间、日期、时区信息常用的时间类部件都会用到这些数据结构常用概念有年、月、日、时、分、秒、毫秒和时区时间和时区就关系到时间戳和UTC的概念。 UTC时间又称世界统一时间、世界标准时间、国际协调时间。中国大陆、中国香港、中国澳门、中国台湾与UTC时差均为8也就是UTC8Windows在设置时间界面-调整时区的下拉框中可以找到这些。 Unix 时间戳是从1970年1月1日UTC/GMT的午夜开始所经过的秒数不考虑闰秒。 DST夏令时又称“日光节约时制”和“夏令时间”是一种为节约能源而人为规定地方时间的制度在这一制度实行期间所采用的统一时间称为“夏令时间”一般在天亮早的夏季人为将时间调快一小时各个地方制度不一样。
一、QDateTime类 QDateTime类是QDate和QTime的组合用来显示时间和日期。可以与QTimeZone类一起描述与本地时间、UTC时间、UTC的指定偏移量或指定时区相关的日期时间。 QDateTime时间戳是qint64类型所以这将日期范围限制在/- 2.92亿年左右。在创建具有极端值的QDateTime时必须小心以免溢出存储空间。支持的值的确切范围取决于时间戳和时区。
1、构造对象 QDateTime提供了多种构造函数来实例化对象。 给定日期时间默认为(00:00:00.000)并将timeSpec()设置为Qt::LocalTime。
QDateTime(const QDate date) 给定时间和日期加时间规范创建。如果spec是Qt::OffsetFromUTC那么它将被设置为Qt::UTC即0秒的偏移量。如果spec是Qt::TimeZone那么spec将被设置为Qt::LocalTime即当前系统时区。
QDateTime(const QDate date, const QTime time, Qt::TimeSpec spec Qt::LocalTime) 给定时间和日期加时区偏移量创建。如果规格是Qt::OffsetFromUTC和offsetSeconds为0那么timeSpec将被设置为Qt::UTC即0秒的偏移量。
QDateTime(const QDate date, const QTime time, Qt::TimeSpec spec, int offsetSeconds) 给定时间和日期加加timeZone指定的时区创建,timeSpec将被设置为Qt::TimeZone。
QDateTime(const QDate date, const QTime time, const QTimeZone timeZone) 根据其他现有对象创建。
QDateTime::QDateTime(const QDateTime other) 还可以通过静态函数传入时间戳(自1970-01-01T00:00:00.000以来经过的毫秒数/秒数)或者字符串来构造。
QDateTime fromMSecsSinceEpoch(qint64 msecs)
QDateTime fromMSecsSinceEpoch(qint64 msecs, Qt::TimeSpec spec, int offsetSeconds 0)
QDateTime fromMSecsSinceEpoch(qint64 msecs, const QTimeZone timeZone)
QDateTime fromSecsSinceEpoch(qint64 secs, Qt::TimeSpec spec Qt::LocalTime, int offsetSeconds 0)
QDateTime fromSecsSinceEpoch(qint64 secs, const QTimeZone timeZone)QDateTime fromString(const QString string, Qt::DateFormat format Qt::TextDate)
QDateTime fromString(const QString string, const QString format, QCalendar cal) 示例
QString string Tuesday, 23 April 12 22:51:41;
QString format dddd, d MMMM yy hh:mm:ss;
QDateTime valid QDateTime::fromString(string, format);2、时间加减 QDateTime允许时间直接进行加减得到一个早晚的时间方法结果都返回一个新的对象参数如果是正数则晚几年/月/天/秒/毫秒负数则早几年/月/天/秒/毫秒。 如果timeSpec为Qt::LocalTime加减刚好落在标准时间和夏令时的过渡上那么会进行调整。比如过渡是在凌晨2点时钟向前到凌晨3点结果落在凌晨2点和凌晨3点之间那么结果将被调整到凌晨3点之后。
QDateTime addYears(int nyears) const //加减年数
QDateTime addMonths(int nmonths) const //加减月数
QDateTime addDays(qint64 ndays) const //加减天数
QDateTime addSecs(qint64 s) const //加减秒数
QDateTime addMSecs(qint64 msecs) const //加减毫秒
3、时间参数 通过QDateTime的公共方法获取日期、时间、时间规范、时区。使用setTimeZone()则timeSpec()被设置成Qt::TimeZone。使用setOffsetFromUtc()如果offset为0timeSpec()返回Qt::UTC否则为Qt::OffsetFromUTC。
QDate date() const //获取日期
void setDate(const QDate date) //设置时间QTime time() const //获取时间
void setTime(const QTime time) //设置时间QTimeZone timeZone() const //获取时区
void setTimeZone(const QTimeZone toZone) //设置时区int offsetFromUtc() const //获取UTC偏移量
void setOffsetFromUtc(int offsetSeconds) //设置UTC偏移量Qt::TimeSpec timeSpec() const //获取时间规范
void setTimeSpec(Qt::TimeSpec spec) //设置时间规范 Qt::TimeSpec参数描述Qt::LocalTime 当地时间Qt::UTCUTC时间Qt::OffsetFromUTCUTC偏移量Qt::TimeZone指定时区 3、计算时间间隔 这些方法计算这个日期时间到另一个日期时间的天/秒/毫秒数。如果后面时间早于前面返回负数。天数是以从这个日期时间到另一个日期时间之间到达午夜的次数来计算的。这意味着从23:55到第二天0:05之间的10分钟差算作一天。
qint64 daysTo(const QDateTime other) const //计算时间差
qint64 secsTo(const QDateTime other) const
qint64 msecsTo(const QDateTime other) const 实例结果为1、1、-1。
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);
qDebug() Days from startDate to endDate: startDate.daysTo(endDate);
4、字符串输出 toString方法以字符串形式返回日期时间。format参数决定结果字符串的格式。
QString toString(const QString format) const
QString toString(Qt::DateFormat format Qt::TextDate) const
QString toString(const QString format, QCalendar cal) const
QString toString(QStringView format) const
QString toString(QStringView format, QCalendar cal) const 格式如下区分大小写。 参数描述d日数 十位不补零1-31dd日数 十位补零01-31ddd星期缩写名(例如:“Mon”到“Sun”)使用系统语言环境对名称进行本地化。dddd星期完整名(例如:“Monday”到“Sunday”)使用系统语言环境对名称进行本地化。M月份 十位不补零1-12MM月份 十位补零01-12MMM月份缩写名(例如:“Jan”到“Dec”)使用系统语言环境对名称进行本地化。MMMM月份完整名(例如:“January”到“December”)使用系统语言环境对名称进行本地化。yy两位年份(00-99)yyyy四位年份(2023)h小时 十位不补零根据AM和PM显示0-23或者1-12hh小时 十位补零根据AM和PM显示00-23或者01-12H小时 十位不补零0-23HH小时 十位补零00-23m分钟 十位不补零0-59mm分钟 十位补零00-59s秒 十位不补零0-59ss秒 十位补零00-59z毫秒(0-999)zzz毫秒(000-999)AP 或者 AAM/PMap 或者 aam/pmt时区 例如 dd.MM.yyyy 21.05.2001 ddd MMMM d yy Tue May 21 01 hh:mm:ss.zzz 4:13:09.120 hh:mm:ss.z 14:13:09.12 h:m:s ap 2:13:9 pm 二、QDate类 此类表示一个特定的日期而不考虑日历、语言环境或创建时使用的其他设置或系统提供的设置。提供year()、month()和day()函数提供对年、月和日数字的访问。提供dayOfWeek()和dayOfYear()显示日期在一周中和一年中的第几天。daysInMonth()和daysInYear()函数分别返回该日期的月份和年份中有多少天。addDays()加减时间、daysTo()比较时间toString()函数以文本格式提供相同的信息、静态函数传入字符串构造类等这些和QDateTime用法类似。
三、QTime类 此类包含一个时钟时间它可以表示为从午夜开始的小时、分钟、秒和毫秒数。它提供了比较时间和通过添加毫秒数来操纵时间的函数。QTime使用24小时时钟格式它没有AM/PM的概念。提供hour()、minute()、second()和msec()函数对时间的小时、分钟、秒和毫秒数的访问。addSecs()加减时间secsTo()比较时间toString()函数以文本格式提供相同的信息、静态函数传入字符串构造类类等这些和QDateTime用法类似。