4

我有一些从 sqlite 数据库中读取日期时间的代码,日期时间作为字符串返回。当我尝试使用 QDateTime::FromString 将其转换为日期时,它返回无效日期。以下是从数据库和转换返回的时间。为什么这无法解析?

// -this is the value returned from the DB currentServerTime=2012-01-17 19:20:27.0

QString format("yyyy/MM/dd hh:mm:ss");
QString qCurrentServerTime(currentServerTime);
now = QDateTime::fromString(qCurrentServerTime, format);
4

1 回答 1

10

没有 QT 专家,但是如果QDateTime::fromString()按照(合理地)期望的那样工作,并且根据this,您没有使用正确的模式。

您表示从 sqllite 数据库读取的字符串类似于“2012-01-17 19:20:27.0”,那么您的格式应该是yyyy-MM-dd HH:mm:ss.z.

详细地:

  • 你的分隔符应该是'-'而不是'/'(如你在示例中所示)
  • 时间似乎是 24 小时格式(19 -> 7 pm)(所以使用HH代替hh
  • 你有一位数毫秒,所以添加.z.
于 2012-01-19T14:46:13.463 回答