将包含PostgreSQL时间戳的QString转换为QDateTime

时间:2010-12-01 22:39:11

标签: qt qstring qdatetime

我遇到一个看似非常简单的问题:我想从包含时间戳的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

必须有一些非常明显的东西我不见了。谢谢!

1 个答案:

答案 0 :(得分:0)

我犯了两个错误。格式规范中没有TZD,因此我删除了时区信息,因为我在我的应用中不需要它:

timeStamp.chop(6);

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

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

感谢上面的每个人帮忙。