2013-04-22 144 views
0

我需要我的Qt應用程序在同一時刻在所有國際計算機上運行任務,無論時區如何。該應用程序以UTC格式從網站下載所需日期+時間。我必須在什麼時區初始化QDateTime?世界標準時間?還是取決於當地時區?我在什麼時區初始化QDateTime?

例如:

說在規定日期+時間爲:2013年4月22日下午14:00 UTC

我怎麼可以初始化的配置了EST一臺電腦和另一臺計算機配置了PST?

會做:

QDateTime test(QDate(2013, 22, 4), QTime(14, 0, 0)); 

意味着所有的國際計算機將在同一時間運行的任務?

回答

2

您使用的QDateTime constructor需要Qt::TimeSpec參數,您可以選擇Qt::UTC而不是使用本地時間的默認值。然後所有的電腦將同時運行。

但如果你從服務下載的時候,它可能正在ISO-8601格式傳送。那麼它可能更容易做到這一點是這樣的:

QDateTime test = QDateTime::fromString(dateAsAString, Qt::ISODate); 

如果時間服務沒有返回在ISO-8601的時候,那麼它是在服務中的錯誤。

+0

謝謝。我也學到了一個新標準。 :) – user2305688 2013-04-22 01:52:46