QDateTime current_date_time = QDateTime::currentDateTime();
current_date_time.toTime_t();
struct tm *p;
//比如123456789是从1970往后走过的微秒时间
//将微秒 转化为 秒 , 再将秒转化为 time_t
time_t t = static_cast<time_t>(123456789/1000000);
//将time_t 转化为tm
p = gmtime(&t);
//取出tm的时间,年+1970,月+1 , 最后取出对应的毫秒
QString imageDate = QString("%1年%2月%3日%4时%5分%6秒%7").arg(1900+p->tm_year).arg(1+p->tm_mon).arg(p->tm_mday)
.arg(p->tm_hour).arg(p->tm_min).arg(p->tm_sec).arg(123456789/1000%1000);
//64位操作系统,
QString Manage::getBackupTime()
{
//获取当前系统时间,并转为秒
QDateTime current_date_time = QDateTime::currentDateTime();
unsigned int timeT = current_date_time.toTime_t();
qDebug() << “------ current_date_time : " << current_date_time << timeT;
//将秒转为时间,年+1900 ,月+1
struct tm *p;
time_t t = static_cast<time_t>(timeT);
//将time_t 转化为tm
p = gmtime(&t);
return QString(”%1/%2/%3 %4:%5:%6").arg(1900+p->tm_year).arg(1+p->tm_mon).arg(p->tm_mday).arg(p->tm_hour).arg(p->tm_min).arg(p->tm_sec);
}
#include <time.h>
time, gmtime, asctime 所表示的时间都是UTC时间,只是数据类型不一样,(一般会比转化时区后的时间少8小时)
而localtime, ctime 所表示的时间都是经过时区转换后的时间,它和你用系统命令date所表示的CST时间应该保持一致。