2012-01-19 65 views
3

我有一些代碼從sqlite數據庫中讀取日期時間,datetime作爲字符串返回。當我嘗試使用QDateTime :: FromString將其轉換爲日期時,它會返回無效日期。以下是從數據庫和轉換中返回的時間。 這是爲什麼無法解析?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); 

回答

10

在QT方面的專家,但如果QDateTime::fromString()作品正如人們所(合理的)預期,並根據this,你沒有使用正確的模式。

您指示從sqllite數據庫讀取的字符串類似於「2012-01-17 19:20:27.0」,那麼您的格式應該與yyyy-MM-dd HH:mm:ss.z一樣。

詳細地:

  • 你的分離器應該通過 ' - ' 不 '/'(如你在該示例示出)
  • 的時間似乎是在24小時內的格式(19 - >下午7點)(所以用HH代替hh
  • 你有一個數字爲毫秒,所以加.z
+0

對不起,我粘貼了錯誤的時間,我確實修改了格式以匹配我發佈和運行的內容。回到我的實際日期/時間我不能得到這個工作。 – user1127081

+0

@ user1127081因此,你的實際字符串是格式化的,就像你的格式一樣?好。那麼現在什麼不行? –

+0

謝謝,我發佈了錯誤的日期時間(正確的一個2012/01/17 12:00:00 AM),但你確實把我引向我的錯誤(我也意識到我們在表格中有多個d/t格式)。以下是正確的格式。 「MM/dd/yyyy hh:mm:ss AP」再次感謝 – user1127081

相關問題