2013-04-22 143 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