QDateTime dt = QDateTime::fromString("Thu, 18 May 2023 05:38:45 GMT", "ddd, dd MMM yyyy hh:mm:ss 'GMT'");
不知道为什么"Thu, 18 May 2023 05:38:45 GMT"字符串转QDateTime失败,有人知道为什么吗?
因为如果用QDateTime::fromString来解析的话,ddd和MMM这种需要符合你系统本地locale的表达,如果你是中文系统的话Thu和May就解析不了了,所以用QLocale::c().toDateTime("Thu, 18 May 2023 05:38:45 GMT", "ddd, dd MMM yyyy hh:mm:ss 'GMT'")就可以了,QLocale::c()是最简化的英语locale,可以解析英语的星期和月份
//时间差
QString begin = "2021-04-09 11:26:40";
QDateTime begin_time = QDateTime::fromString(begin, "yyyy-MM-dd hh:mm:ss");
QString end = "2021-05-01 11:26:40";
QDateTime end_time = QDateTime::fromString(end, "yyyy-MM-dd hh:mm:ss");
//转化 秒,天
begin_time.secsTo(end_time)
begin_time.daysTo(end_time)
QString str = "2021-04-09 11:26:40";
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");
//时间转化
//将当前时间转化为时间戳
QDateTime begin_time = QDateTime::currentDateTime();//获取系统现在的时间
uint stime = begin_time.toTime_t();