2013-04-22 2 views
0

Мне нужно приложение Qt для запуска задачи на всех международных компьютерах в тот же момент времени, независимо от часового пояса. Приложение загружает требуемую дату + время из Интернета в UTC. В какой часовой пояс я должен инициализировать QDateTime? УНИВЕРСАЛЬНОЕ ГЛОБАЛЬНОЕ ВРЕМЯ? Или это зависит от местного часового пояса?В какой часовой пояс я инициализирую QDateTime?

Например:

Say требуемая дата + время: 4/22/2013 в 14:00 UTC

Как бы я инициализировать это на компьютере, настроенном с EST и другой компьютер, настраивается с помощью PST?

Would делает:

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

Смежные вопросы