我如何得到计算了"夏令时"的时间

sohor12 2014-02-17 03:01:14
atl的COleDateTime在msdn里面说:
----------------------------
COleDateTime ignores Daylight Saving Time
----------------------------

那么,对于有夏令时的国家和地区,例如美国,系统发生夏令时切花的时候,系统时钟是会往回跳一个小时的。那么COleDateTime如何也能让我在夏令时发生的时候,返回一个比平时小1个小时的值吗? 有没有相应的api来处理夏令时的?

谢谢。
...全文
392 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
许文君 2014-02-17
  • 打赏
  • 举报
回复
int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/
许文君 2014-02-17
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/390709699 这贴也是你发的吧?里面不是很清楚了么, CTime time = CTime::GetCurrentTime(); tm t1; tm t2; time.GetLocalTm(&t1);//当地时区 time.GetGmtTm(&t2);//格林尼治时间 t1.tm_hour-t2.tm_hour//时区 其中tm结构体

struct tm {
        int tm_sec;     /* 秒 – 取值区间为[0,59] */
        int tm_min;     /* 分 - 取值区间为[0,59] */
        int tm_hour;    /* 时 - 取值区间为[0,23] */
        int tm_mday;    /* 一个月中的日期 - 取值区间为[1,31] */
        int tm_mon;     /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */
        int tm_year;    /* 年份,其值等于实际年份减去1900 */
        int tm_wday;    /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */
        int tm_yday;    /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */
        int tm_isdst;   /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/
        };
Eleven 2014-02-17
  • 打赏
  • 举报
回复
GetTimeZoneInformation是不是和这个有关?

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧