QString timestr("Fri Jan 5 14:03:11 CST 2018");
QDateTime time1 = QDateTime::fromString(timestr, "ddd MMM d hh:mm:ss CST yyyy");
qDebug() << time1.toString("yyyyMMdd");
我尝试将字符串转换为更简单的时间描述,但它失败了。我的 QString 可能有什么问题?
\note 与此函数的其他版本不同,日期和月份名称必须以用户的本地语言给出。如果用户的语言是英语,则只能使用英语名称。
另请注意,这是系统区域设置,而不是您在 QLocale 中设置的默认区域设置。要解析这样的英语日期字符串,您需要在英语实例上使用 QLocale::fromString() 。所以下面的代码会正确返回。
QLocale loc(QLocale::English);
QString timestr("Fri Jan 5 14:03:11 CST 2018");
QDateTime time1 = loc.toDateTime(timestr, "ddd MMM d hh:mm:ss CST yyyy");
qDebug() << time1.toString("yyyyMMdd");
希望它可以帮助其他人解决同样的问题。