Как я могу сохранить UTC в CDateTimeCtrl? - PullRequest
1 голос
/ 19 ноября 2008

В моем приложении MFC есть диалог со средством выбора даты. Когда я инициализирую этот диалог, мне нужно вызвать CDateTimeCtrl :: SetTime (), и я пытаюсь решить, какой аргумент ему дать. У меня есть массив целых чисел, представляющих год, месяц, день, час и минуту в UTC. Вот важный бит: средство выбора даты должно отображать время в UTC, а не местное время. И когда я позже вызываю GetTime (), я должен быть уверен, что то, что я получаю обратно, может рассматриваться как UTC.

Функция SetTime () имеет три переопределения: первое принимает CTime *, второе - COleDateTime и третье - LPSYSTEMTIME. Похоже, что конструктор CTime автоматически преобразует свои входные данные в местное время, а конструктор COleDateTime - нет. Это правда? И я думаю, что LPSYSTEMTIME на самом деле не предназначен для сборки вручную? Итак, мой лучший способ построить COleDateTime из моего массива и передать его SetTime?

Учитывая, что я зимой в Лондоне, как я могу проверить эти вещи, чтобы убедиться, что они ведут себя так, как я хочу? Есть ли способ временно притвориться, что я нахожусь в Чикаго, и проверить, не влияет ли это на мою дату?

1 Ответ

3 голосов
/ 19 ноября 2008

Я давно работал над чем-то похожим. Я считаю, что я использовал COleDateTime. Реальным преимуществом было то, что он не конвертируется автоматически по местному времени.
Если вы действительно хотите что-то проверить, попробуйте установить часовой пояс на время в Сиднее, поскольку сейчас у нас летнее время (UTC + 11). Смена полушарий проверит вас!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...