2009-08-04 75 views
2

我正在使用Qt來解析包含UTC時間戳的XML文件。當然,在該計劃中,我希望他們改變當地時間。在XML文件中,時間戳看起來像這樣:「2009-07-30T00:32:00Z」。什麼是正確的方式來處理日期時間從Qt中的字符串輸入日期時間

不幸的是,當使用QDateTime :: fromString()方法時,這些時間戳被解釋爲在本地時區中。解決這個問題的方法是從當前時間加上或減去正確的時區偏移量,以將其轉換爲「真」本地時間。然而,是否有任何方法可以讓Qt意識到我正在導入UTC時間戳,然後自動將其轉換爲當地時間?

+0

只是作爲參考,具體的代碼片段,做相似/同樣的與你所提到的在`Qt`s跟蹤網站https://bugreports.qt-project.org/browse/可用QTBUG-71 – IsaacS 2012-08-03 19:55:48

回答

7

做這樣的:

QDateTime timestamp = QDateTime::fromString(thestring); 
timestamp.setTimeSpec(Qt::UTC); // mark the timestamp as UTC (but don't convert it) 
timestamp = timestamp.toLocalTime() // convert to local time 
1

嘗試使用setTime_t函數。

+0

這裏是Qt4版本; http://doc.trolltech.com/4.5/qdatetime.html#setTime_t修改父母的好答案btw! – ismail 2009-08-04 06:51:12

+0

對不起,做了谷歌搜索,那是我找到的。沒有檢查版本。已修復 – Marius 2009-08-04 06:52:46