我在哪个时区初始化QDateTime?

时间:2013-04-22 01:22:47

标签: c++ qt qt5

我需要我的Qt应用程序在同一时刻在所有国际计算机上运行任务,而不管时区。应用程序以UTC格式从Web下载所需的日期+时间。我必须用什么时区来初始化QDateTime?世界标准时间?或者它取决于当地时区?

例如:

假设所需日期+时间为:2013年4月22日14:00 UTC

如何为配置了EST的计算机和另一台配置了PST的计算机初始化这个?

会做:

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

是否所有国际计算机都会同时运行任务?

1 个答案:

答案 0 :(得分:2)

您使用的QDateTime constructor采用Qt::TimeSpec参数,您可以选择Qt::UTC而不是使用本地时间的默认值。然后所有的计算机都会同时运行。

但如果您从服务中下载时间,则可能是以ISO-8601格式传输。那么这样做可能要容易得多:

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

如果时间服务没有在ISO-8601中返回时间,那么这是服务中的错误。