首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >COleDateTime使用time_t构造时添加一个小时

COleDateTime使用time_t构造时添加一个小时
EN

Stack Overflow用户
提问于 2018-12-05 11:56:54
回答 1查看 280关注 0票数 2

我有一个struct tm对象,它使用mktime转换为UNIX time_t,当传递到COleDateTime的构造函数时,似乎要添加一个小时来计算夏时制(英国时间),尽管COleDateTime的文档表明它忽略了DST。

如果我用SYSTEMTIME创建我的时间并将该对象传递给COleDateTime,那么问题就会消失。有人知道为什么会发生这种事吗?这来自于遗留代码,因此将所有内容更改为SYSTEMTIME可能不是一个解决方案。

下面是我的示例代码:

代码语言:javascript
复制
timeinfo.tm_year = 2018 - 1900;
timeinfo.tm_mon = 6 - 1;
timeinfo.tm_mday = 1;
timeinfo.tm_isdst = 0;
timeinfo.tm_hour = 10;
timeinfo.tm_min = 30;
timeinfo.tm_sec = 40;

auto unix = mktime( &timeinfo );
printf("UNIX time %lld\n", unix);
COleDateTime date(unix);
printf("COleDateTime: %f\n", date.m_dt);
CString res = date.Format();
printf("Formatted: %ls\n", res.GetString());
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-05 12:25:29

回答我自己的问题:

COleDateTime time_t构造函数在内部使用CTime,不管COleDateTime的文档说什么,它都考虑到了地区和时区的环境变量。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53631788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档