【Qt之·类QDateTime】

本文详细讲解了Qt框架中的QDateTime类,涉及时间日期格式化、时间戳转换、成员函数以及时间差计算,旨在帮助开发者更好地运用QDateTime进行日期时间操作。
摘要由CSDN通过智能技术生成

系列文章目录



前言

  QDateTime是Qt框架中非常重要的一个类,它提供了日期时间的表示和计算功能,能够帮助我们轻松地处理时间戳、时区、时间格式等问题。无论是在图形界面程序开发还是后台服务器开发中,QDateTime都有广泛的应用场景。本博客将深入探讨QDateTime类的各种用法,并给出一些实际应用案例,希望能够帮助大家更好地理解和使用QDateTime类。


一、

1.时间日期显示的格式化字符说明

表达式说明
yyyy年,4位数字显示,如 2023
yy年,两位显示,00-99
MM月,补零显示,01-12
M月,不补零显示,1-12
dd天,补零显示,01-31
d天,不补零显示,1-31
dddd星期,全显示,星期五
ddd星期,简略显示,周五
hh小时,补零2位显示,00-23 或 01-12 (如果显示 AM/PM)
h小时,不补零,0-23 或 1-12 (如果显示 AM/PM)
mm分钟,补零显示,00-59
m分钟,不补零,0-59
ss秒,补零显示,00-59
s秒,不补零显示,0-59
z毫秒,不补零,0-999
zzz毫秒,补零 3 位显示,000-999
AP或A使用 AM/pm 显示
ap或a使用 am/pm 显示

2.

二、成员函数

1.当前时间和时间戳相互转化

当前时间转化为时间戳

QDateTime time= QDateTime::currentDateTime();//获取系统当前的时间
uint nTime = time.toTime_t();

时间戳转化为当前时间

QDateTime time = QDateTime::fromTime_t(timeT); //这个方法是静态的

成员函数

QDateTime::toMSecsSinceEpoch() const;// 将QDateTime转换成毫秒
QDateTime::toSecsSinceEpoch() const;// 将QDateTime转换成秒
QDateTime::fromMSecsSinceEpoch(qint64 msecs);// 将毫秒值转换成QDateTime
QDateTime::fromSecsSinceEpoch(qint64 msecs);// 将秒转换成QDateTime

2.

qint64 timestamp = QDateTime::currentDateTime().toSecsSinceEpoch();
qDebug() << "当前时间戳:" << timestamp;
 
qint64 timestamp = 1615558799;
QDateTime dateTime = QDateTime::fromSecsSinceEpoch(timestamp);
qDebug() << "时间戳对应的日期时间:" << dateTime.toString("yyyy-MM-dd hh:mm:ss");
 
 
 
QString strDateTime = "2021-03-12 23:59:59";
QDateTime dateTime = QDateTime::fromString(strDateTime, "yyyy-MM-dd hh:mm:ss");
qint64 timestamp = dateTime.toSecsSinceEpoch();
qDebug() << "日期时间对应的时间戳:" << timestamp;
 
 
 
QString strDateTime = "2023-03-20 12:34:56";
QDateTime dateTime = QDateTime::fromString(strDateTime, "yyyy-MM-dd hh:mm:ss");
qDebug() << "时间字符串对应的 Qt 时间对象:" << dateTime;
 
 
QDateTime dateTime = QDateTime::currentDateTime();
QString strDateTime = dateTime.toString("yyyy-MM-dd hh:mm:ss");
qDebug() << "Qt 时间对象对应的时间字符串:" << strDateTime;
 
 
计算时间戳时间差
 
qint64 timestamp = QDateTime::currentDateTime().toSecsSinceEpoch();
qint64 timestamp_60s_ago = timestamp - 60;
qint64 time_difference = timestamp - timestamp_60s_ago;

总结

以上就是今天要讲的内容,本文仅仅简单介绍了QDateTime的使用,而QDateTime提供了大量能使我们快速便捷地处理数据的函数和方法。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值