如何在CDateTimeCtrl中保留UTC?

时间:2008-11-19 11:30:32

标签: c++ mfc

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

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

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

1 个答案:

答案 0 :(得分:3)

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