1. QDateTime与时间戳转换
时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总秒数
1.1 QDateTime转换成时间戳
int64_t timestamp = currentTime.toMSecsSinceEpoch();//返回毫秒级时间戳
int64_t timestamp = currentTime.toSecsSinceEpoch();//返回秒级时间戳
int64_t timestamp = currentTime.toTime_t();//同toSecsSinceEpoch()
1.2 时间戳转换成QDateTime
QDateTime time = QDateTime::fromMSecsSinceEpoch(timestamp);
QDateTime time = QDateTime::fromSecsSinceEpoch(timestamp);
QDateTime time = QDateTime::fromTime_t(timestamp);
Note:toMSecsSinceEpoch()函数获取的时间戳超出32位表示范围,故不可以用int类型接收返回值!
1.3 测试代码及运行结果
QDateTime currentTime = QDateTime::currentDateTime();
qDebug()<<"currentTime:"<<currentTime;
int64_t timestamp1 = currentTime.toMSecsSinceEpoch();
int64_t timestamp2 = currentTime.toSecsSinceEpoch();
int64_t timestamp3 = currentTime.toTime_t();
qDebug()<<"timestamp1:"<<timestamp1;
qDebug()<<"timestamp2:"<<timestamp2;
qDebug()<<"timestamp3:"<<timestamp3;
QDateTime time1 = QDateTime::fromMSecsSinceEpoch(timestamp1);
QDateTime time2 = QDateTime::fromSecsSinceEpoch(timestamp2);
QDateTime time3 = QDateTime::fromTime_t(timestamp3);
qDebug()<<"time1:"<<time1;
qDebug()<<"time2:"<<time2;
qDebug()<<"time3:"<<time3;
2. QDateTime与字符串相互转换
2.1QDateTime转字符串
可以使用QDateTime的toString()函数将QDateTime对象转换成指定格式的字符串。例如,要将QDateTime对象转换成“2024-01-12 16:54:33:222”格式的字符串,可以使用如下代码:
QDateTime datetime = QDateTime::currentDateTime();
QString str = datetime.toString("yyyy-MM-dd HH:mm:ss:zzz");
2.2字符串转QDateTime
QDateTime datetime=QDateTime::fromString("2006-11-03 21:30:03","yyyy-MM-dd hh:mm:ss")