系列文章目录
前言
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提供了大量能使我们快速便捷地处理数据的函数和方法。