Qt:QDateTime
0、说明
提供时间日期的表达和相关函数。
QDateTime通过日期+时间来构造一个日期时间。它综合了QDate和QTime的所有特性。
它可以通过系统时钟来获取当前DateTime。它还提供了比较时间的方法和对时间进行加减运算的方法。
QDateTime可以分别通过本地时间、UTC、UTC偏移时间、指定时区(通过QTimeZone类实现)来描述日期时间。这些时间间是相关的,例如,UTC偏移 +3600×8 秒 等同于 ISO标准标识 UTC+08:00,等同于 时区为CN/Beijing 的时间。
1)构造
一个QDateTime既可以直接通过传入一个date和time进行构造,也可以调用如currentDateTime()、fromMSecsSinceEpoch()的静态函数来进行构造。date和time可以通过setDate()、setTime()来进行设置,也可以直接通过setMSecsSinceEpoch()来用时间戳进行构造,也可以用fromString()来从一个String用相关的格式进行构造。
2)当前时间
QDateTime::currentDateTime()返回当前DateTime,QDateTime::currentDateTimeUtc()返回UTC下的当前时间。
3)提取与设置
可以通过date()、time()来提取该DateTime中的Date与Time。同样的信息可以通过在toString()中传入指定格式来实现。
4)运算
addMSecs():加上毫秒
addSecs():秒
addDays():日
addMonths():月
addYears():年
daysTo():两个DateTime间的天数
msecTo():两个DateTime间的毫秒数
5)转换
toTimeSpec():转换为本地时间
toOffsetFromUtc():转换为UTC偏移时间
toTimeZone():转换为时区时间
timeSpec():存储时间的相对时间规范
Qt::TimeZone + timeZone():返回时区
注意事项
①没有0年
只有-1与1年
1、模块和加载项
| Header: | #include <QDateTime> |
| qmake: | QT += core |
2、构造
| QDateTime(QDateTime other) | 构造另一个QDateTime的副本 |
| QDateTime(QDate date, QTime time, QTimeZone timeZone) | 用指定的Date、Time、TimeZone构造DateTime |
| QDateTime(QDate date, QTime time, Qt::TimeSpec spec, int offsetSeconds) | |
| QDateTime(QDate date, QTime time, Qt::TimeSpec spec = Qt::LocalTime) | |
| QDateTime(QDate date) | 用指定QDate构造QDateTime |
| QDateTime() |
3、静态字段
| enum class | YearRange { First, Last } | 年的范围 |
| Constant | Value | Description |
|---|---|---|
QDateTime::YearRange::First |
-292275056 |
The later parts of this year are representable |
QDateTime::YearRange::Last |
+292278994 |
The earlier parts of this year are representable |
5、静态方法
返回值类型 |
方法 |
说明 |
| QDateTime | currentDateTime() | 当前本地时间 |
| currentDateTimeUtc() | 当前UTC时间 | |
| qint64 | currentMSecsSinceEpoch() | 当前时间戳(毫秒) |
| currentSecsSinceEpoch() | 当前时间戳(秒) | |
| QDateTime | fromCFDate(CFDateRef date) | 从一个CFDate构造QDateTime |
|
fromMSecsSinceEpoch(qint64 msecs) fromMSecsSinceEpoch(qint64 msecs, Qt::TimeSpec spec, int offsetSeconds = 0) fromMSecsSinceEpoch(qint64 msecs, QTimeZone timeZone) |
返回时间戳(毫秒)对应的QDateTime | |
| fromNSDate(const NSDate *date) | 从NSDate构造QDateTime | |
|
fromSecsSinceEpoch(qint64 secs, Qt::TimeSpec spec = Qt::LocalTime, int offsetSeconds = 0) fromSecsSinceEpoch(qint64 secs, QTimeZone timeZone) |
返回时间戳(秒)对应的QDateTime | |
|
fromString(QString string, Qt::DateFormat format = Qt::TextDate) fromString(QString string, QString format) fromString(QString string, QString format, QCalendar cal) |
从QString用指定格式构造QDateTime |
6、实例方法
返回值类型 |
方法 |
说明 |
||||||||||||
|
QDateTime & bool bool bool bool bool bool |
operator=(QDateTime other) operator!=(QDateTime other) operator<(QDateTime other) operator<=(QDateTime other) operator==(QDateTime other) operator>(QDateTime other) operator>=(QDateTime other) |
赋值 比较两个日期的大小 |
||||||||||||
| QDateTime |
addDays(qint64 ndays) addMSecs(qint64 msecs) addMonths(int nmonths) addSecs(qint64 s) addYears(int nyears) |
QDateTime加一定时间,得到新QDateTime。 如果参数是负数就表示减一定时间。 |
||||||||||||
|
QDate QTime Qt::TimeSpec QTimeZone QString |
date() time() timeSpec() timeZone() |
提取QDateTime的相关信息 | ||||||||||||
|
qint64 |
daysTo(QDateTime other) msecsTo(QDateTime other) secsTo(QDateTime other) |
两个QDateTime间的间隔,单位分别是天、毫秒、秒 | ||||||||||||
| bool | isDaylightTime() | 是否是夏令时 | ||||||||||||
| bool | isNull() | 当Date和Time都是null时返回true | ||||||||||||
| bool | isValid() | |||||||||||||
| int | offsetFromUtc() | UTC偏移,单位秒 | ||||||||||||
| void |
setDate(QDate date) setMSecsSinceEpoch(qint64 msecs) setOffsetFromUtc(int offsetSeconds) setSecsSinceEpoch(qint64 secs) setTime(QTime time) setTimeSpec(Qt::TimeSpec spec) setTimeZone(QTimeZone toZone) |
设置QDateTime的相关信息 | ||||||||||||
| void | swap(QDateTime &other) | 互换两个QDateTime的相关信息 | ||||||||||||
|
CFDateRef QDateTime qint64 NSDate * QDateTime qint64 QDateTime QDateTime QDateTime |
toCFDate() toNSDate() toOffsetFromUtc(int offsetSeconds) toTimeSpec(Qt::TimeSpec spec) toTimeZone(QTimeZone timeZone) toUTC() |
把QDateTime转换为对应的时间 | ||||||||||||
| QString |
toString(QString format) toString(Qt::DateFormat format = Qt::TextDate) toString(QString format, QCalendar cal) |
返回该DateTime对应的QString,参数format指定了转化的格式。 假设QDateTime是 21 May 2001 14:13:09.120 相关转化格式为:
如果DateTime非法,会返回一个空QString。 正如dd与ddd,打印时分别是21和Tue,不同个数的格式字符打印出的内容也不同,有兴趣可以自行尝试。 格式用到的标准是ISO 8601。 |
7、一些用法
1)获取当前日期
QDateTime dt = QDateTime::currentDateTime();
2)转换为String
dts = dt.toString("yyyy-MM-dd HH:mm:ss ddd");
//"2021-07-16 10:13:00 周五"
Qt:QDateTime的更多相关文章
- Qt:QDateTime、QDate、QTime与QDateTimeEdit
时间日期是经常遇到的数据类型,Qt中的时间日期类如下: QTime:时间类型,只表示时间,如15:23:13: QDate:日期类型,只表示日期,如2017-4-5: QDateTime:日期时间类型 ...
- Qt:禁止qDebug的输出
Qt:禁止qDebug的输出 在工程的.pro文件里加上以下编译批令即可: DEFINES += QT_NO_DEBUG_OUTPUT
- Qt:使用自定义的字体
Qt:使用自定义的字体 1. 下载字体文件 2. 加载字体文件 3. 使用字体 QFontDatabase::addApplicationFont("XENOTRON.TTF" ...
- Qt:QJsonObject
0.说明 QJsonObject在逻辑上就是一个Map或Dict!记住这一点对理解它的方法.说明很有帮助. QJsonObject类封装了JSON Object. JSON Object是一个Key- ...
- Qt:QJsonValue
0.说明 QJsonValue类用于操作JSON中的各种数据. JSON是用于存储结构化数据的格式,JSON中的数据可以是六种类型: 基本类型 存储类型 bool QJsonValue::Bool d ...
- Qt:QJsonArray
0.说明 QJsonArray中存储了一系列的QJsonValue.可以向其中插入.删除QJsonValue. 一个QJsonArray可以与QVariantList互相转换.可以通过size()访问 ...
- Qt:QUrl构造时的qrc前缀
参考(按对我帮助从大到小排列): Qt内的各种路径(让人迷惑) - 鬼谷子com - 博客园 qt webengineview 加载本地资源方式 - beautifulday - 博客园 (17条消息 ...
- QT:“下载速度柱状图”的模拟实现——思路真好,会动脑筋,连我都有了启发(这个思路好像是通用的)
不知是哪个版本的迅雷,有个“下载速度柱状图”的小界面,我比较喜欢(只不过最新版本的迅雷却没了),所以决定来山寨一个.当然,这个山寨品不能下载文件,呵呵. 思路:1:将界面的背景涂成黑色2:每隔0.1秒 ...
- Qt:基于TCP和UDP的局域网P2P(局域网)通讯封装
封装了一个类,可以进行在局域网进行P2P通讯(仅局域网可用) 也就是说,假设局域网中有10台电脑,那么从本机发出的数据,将依次派发到这10台电脑(目前的设计中包括自己这台) 在使用方面,构造的时候给端 ...
随机推荐
- 面渣逆袭:Java基础五十三问,快来看看有没有你不会的!
大家好,我是老三, 面渣逆袭 系列继续.这节我们回到梦开始的地方--Java基础,其实过了萌新阶段,面试问基础就问的不多,但是保不齐突然问一下.想一下,总不能张口高并发.闭口分布式,结果什么是面向对象 ...
- linux中uniq命令全面解析
目录 一 :uniq作用 二:uniq格式 1.参数 2.参数案例解析: linuxuniq简介 Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用. u ...
- Java枚举-通过值查找对应的枚举
一.背景 Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等. 最近工作中,对接了很多其他的系统,发现对接的同一个系统 ...
- shiro 快速入门详解。
package com.aaa.lee.shiro; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.*; i ...
- 类加载器(JVM)
一.JVM概述 JVM是java是二进制字节码的运行环境 特点: 一次编译,到处运行(跨平台) 自动内存管理 自动垃圾回收功能 常见的JVM Sun Classic VM:世界上第一款商用的java虚 ...
- 布客·ApacheCN 编程/大数据/数据科学/人工智能学习资源 2020.4
公告 我们的机器学习群(915394271)正式改名为财务提升群,望悉知. 请关注我们的公众号"ApacheCN",回复"教程/路线/比赛/报告/技术书/课程/轻小说/漫 ...
- 截取一段时间内的log日志
可以使用sed命令对log文件进行抽取操作:1,sed查看某时间段到现在的系统日志:sed -n '/May 20 17/,$p' /var/log/messages | less2,sed 截选时间 ...
- Redis——(主从复制、哨兵模式、集群)的部署及搭建
Redis--(主从复制.哨兵模式.集群)的部署及搭建 重点: 主从复制:主从复制是高可用redis的基础,主从复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复. 哨兵和集群都是 ...
- 区区牛马蹉跎 ,不要向生活低下头 Linux的账号和管理
账户和管理权限 1.管理用户账号和组账号 2.管理目录和文件的属性 1.Linux基于用户身份对资源访问进行控制:用户账号(超级用户.普通用户.程序用户) 组账号(基本组.附加组).UID (用户标识 ...
- MLlib学习——基本统计
给定一个数据集,数据分析师一般会先观察一下数据集的基本情况,称之为汇总统计或者概要性统计.一般的概要性统计用于概括一系列观测值,包括位置或集中趋势(比如算术平均值.中位数.众数和四分位均值),展型(比 ...