一问学会QT时间类
QT获取时间的类有3个,分别是QDate、QTime、QDateTime,他们属于QT的network模块。
一、QDATE类提供日期函数
QDATE对象包含公历中的日历日期,即年、月和日数。它可以从系统时钟读取当前日期。它提供了比较日期和操作日期的功能。
QDate::currentDate()从系统时钟读取当前日期。例如:QDate::currentDate().toString("yyyy.MM.dd")
二、QTime类提供时钟时间函数
QTIME对象包含时钟时间,即从午夜开始的小时数、分钟数、秒数和毫秒数。它可以从系统时钟读取当前时间并测量经过的时间跨度。它提供了用于比较时间和通过添加毫秒来操纵时间的功能。QTIME使用24小时时钟格式,它没有AM/PM的概念。与QDateTime不同的是,QTime没有时区或夏令时概念。
QTime::currentTime()获取时间为时分秒,例如:QTime::currentTime().toString("hh:mm:ss:zzz")
三、QDateTime是类QDate和类QTime的相结合
它可以从系统时钟中读取当前日期时间。它提供比较日期时间和操作日期时间的函数,比如加上一定数量的秒、天、月或年。和QDate相比可以设置时区属性:setTimeZone(const QTimeZone &toZone)
QDateTime::currentDateTime();//获取系统现在的时间,
例如:QDateTime::currentDateTime().toString("yyyy.MM.dd hh:mm:ss:zzz")
QDateTime转QString。
QDateTime begin_time = QDateTime::currentDateTime();//获取系统现在的时间
QString begin =begin_time .toString("yyyy.MM.dd hh:mm:ss.zzz DDD");
debug(2019.03.13 14:47:24:333 周三)
QString转QDateTime。
QString begin= "2019-03-31 12:24:36";
QDateTime begin_time = QDateTime::fromString(begin, "yyyy-MM-dd hh:mm:ss");
计算时间差:
QString begin = "2019-03-31 12:24:36";
QDateTime begin_time = QDateTime::fromString(begin, "yyyy-MM-dd hh:mm:ss");
QString end = "2019-04-01 12:24:36";
QDateTime end_time = QDateTime::fromString(end, "yyyy-MM-dd hh:mm:ss");
begin_time.secsTo(end_time)//转换为秒 86400
begin_time.daysTo(end_time)//转换为日 1
int ms = 1537537358;
QDateTime dateTime = QDateTime::fromTime_t(ms);
QString str = dateTime.toString("yyyy-MM-dd hh:mm:ss");
将当前时间转化为时间戳:
QDateTime begin_time = QDateTime::currentDateTime();//获取系统现在的时间
uint stime = begin_time.toTime_t();
获取时间的前一天:
QString str = "2019-03-01 12:00:01";
QDateTime begin_time = QDateTime::fromString(str, "yyyy-MM-dd hh:mm:ss");
QString str= begin_time .addDays(-1).toString("yyyy-MM-dd hh:mm:ss");//获取前一天时间
负数为之前的时间正数为之后的时间同时还有addMonths(int months)、addYears(int years)、addSecs(qint64 secs)、addMSecs(qint64 msecs) 等
到此这篇关于一问学会QT时间类的文章就介绍到这了,更多相关QT时间类内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
相关文章