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可能出现什么问题?
答案 0 :(得分:0)
\ 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");
希望它可以帮助其他人解决同样的问题。