1、如上一节所介绍,c语言中"time.h"使用起来较为繁琐,面临各种数据格式转换,本期我们重点来介绍Qt中与时间相关的三个类:QDateTime、QTime、QDate,一般QDateTime用的较多,我们重点介绍该类。
(1)QDateTime:时间数据类型,表示时间,如:14:23:13。
(2)QTime:日期数据类型,表示日期,如:2020-4-5。
(3)QDate:日期时间数据类型,表示日期和时间,如:2020-03-23 08:12:43。
2、打开Qt的帮助文档:用来指定年月日等的符号以及对应格式
3、获取当前时间:
//获取当前时间
QDateTime current_time = QDateTime::currentDateTime();
QString currentTime = current_time.toString("yyyy-MM-dd hh:mm:ss ddd");
4、QString转化为QDateTime:
QString str= "2020-11-02 12:24:36";
QDateTime time = QDateTime::fromString(str, "yyyy-MM-dd hh:mm:ss");
5、QDateTime转化为指定格式的QString类型,调用成员函数toString(const char* format):
QDateTime dateTime;
//timeFormat表示要转换成的时间格式
tracList[i].leaveTime = dateTime.toString(timeFormat).toStdString();
6、为此,我们常用到QString转为std::string:
QString::fromStdString(const char*);
7、获取从1970年至今的秒数,调用非静态成员函数
qint64 toSecsSinceEpoch() const;
8、对应秒数(类似于c中的time_t)转为QDateTime,这一点比c语言做的好,极为方便:
static QDateTime fromSecsSinceEpoch(qint64 secs, Qt::TimeSpec spe = Qt::LocalTime, int offsetFromUtc = 0);