我在一个看似非常简单的问题上遇到了麻烦:我想从包含时间戳的QString中获得QDATETIME。我从PostgreSQL那里获得了时间戳,但这没关系。这是不起作用的代码:

QString timestamp = "2010-10-09 19:21:46+02:00";
QString format = "YYYY-MM-DD HH:MM:SSTZD";
QDateTime dt = QDateTime::fromString(timestamp, format);
qDebug() << dt.toString(); // outputs empty string

我一定有一些很明显的东西。谢谢!

有帮助吗?

解决方案

我犯了两个错误。格式规格中没有TZD,因此我删除了时区信息,因为我在应用程序中不需要以下情况:

timeStamp.chop(6);

然后使用以下格式获取QDATETIME。注意小写格式字符:

QDateTime createdAt = QDateTime::fromString(timeStamp, "yyyy-MM-dd HH:mm:ss");

感谢上面的所有人提供帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top