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台电脑(目前的设计中包括自己这台) 在使用方面,构造的时候给端 ...
随机推荐
- Spring系列7:`autowire`自动装配怎么玩
回顾 前几篇我们介绍各种依赖依赖注入,都是显式指定的,配置明确但同时也有些繁杂和重复."很多发明的出发点,都是为了偷懒,懒人是推动社会进步的原动力".Spring 提供了自动注入依 ...
- Atcoder ARC-125
写的详细的就是我不会做的... A 显然至多有一次移动距离 \(> 1\) 只需判断这个位置在哪里即可. 复杂度 \(\mathcal{O}(n)\). B 令 \(x ^ 2 - y = z ...
- java实现跳过证书校验
/** * 跳过证书效验的sslcontext * @return * @throws Exception */ private static SSLContext createIgnoreVerif ...
- HTTPS的基本使用
1.https简单说明 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的 ...
- 记项目中ES6+gulp+angularjs里的问题
AngualrJs中可用来注入的有三种类型,service.factory.provider,这三种写法不样,用法也都不一样.其中,service只实例化一次,其实就是单例模式的思想.无论我们在什么地 ...
- 生成静态库.a文件和动态库.so文件
转载来源:https://www.cnblogs.com/hookjc/ 静态库 在linux环境中, 使用ar命令创建静态库文件.如下是命令的选项: d -----从指定的静态库文件中删除文件 m ...
- 编译PHP扩展的方式
编译的两种方式其实很简单,这里记录只是为了以后遇到这种情况时不加思索地运用上,而不是花费一些时间去回忆. C/C++程序编译有两种方式:动态编译.静态编译.PHP 是使用 C/C++程序开发的一门脚本 ...
- abp vnext 调试
在用Abp或者asp.net core 开发过程中,难免会遇到稀奇古怪的问题,需要对底层源代码进行调试,下面就教大家如何通过配置Visual Studio 2019来进行调试: 首先我们通过查看Abp ...
- 文本处理命令(sort+uniq+cut+tr+wc)+三剑客之sed
目录 文本处理命令+三剑客之sed 一.文本处理命令 1.排序命令 sort 2.检查/删除命令 uniq 3. cut 显示特定部分命令 4. 替换或删除命令 tr 5.统计 计算数字命令 wc 二 ...
- JavaScript 的DOM操作详解
内容概要 DOM之查找标签 基本查找 间接查找 节点操作 获取值操作 class操作 样式操作 事件 内置参数this 事件练习 内容详细 DOM操作 DOM(Document Object Mode ...