【问题标题】:How can I preserve UTC in a CDateTimeCtrl?如何在 CDateTimeCtrl 中保留 UTC?
【发布时间】:2008-11-19 11:30:32
【问题描述】:

我的 MFC 应用程序与日期选择器进行了对话。当我初始化这个对话时,我需要调用 CDateTimeCtrl::SetTime() 并且我试图决定给它什么参数。我有一个整数数组,表示 UTC 中的年、月、日、小时和分钟。这是重要的一点:日期选择器必须以 UTC 显示时间,而不是本地时间。当我稍后调用 GetTime() 时,我需要确保我返回的内容可以被视为 UTC。

SetTime() 函数具有三个覆盖:第一个采用 CTime*,第二个采用 COleDateTime&,第三个采用 LPSYSTEMTIME。看起来好像 CTime 的构造函数自动将其输入转换为本地时间,而 COleDateTime 的构造函数却没有。真的吗?而且我认为 LPSYSTEMTIME 并不是真正设计为手工构建的吗?那么从我的数组构建一个 COleDateTime 并将其传递给 SetTime 是我最好的课程吗?

鉴于我冬天在伦敦,我如何测试这些东西以确保它们的行为符合我的要求?有没有办法暂时假装我在芝加哥并检查这不会影响我的日期选择器?

【问题讨论】:

    标签: c++ mfc


    【解决方案1】:

    我很久以前就做过类似的事情。我相信我使用了 COleDateTime。真正的优势在于它不会自动转换为当地时间。
    如果您真的想测试一下,请尝试将您的时区设置为悉尼时间,因为我们现在处于夏令时 (UTC+11)。半球的变化将考验你!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-30
      • 1970-01-01
      • 2021-04-21
      • 2012-06-11
      相关资源
      最近更新 更多