首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IAR <time.h>,本地时间,mktime

IAR <time.h>,本地时间,mktime
EN

Stack Overflow用户
提问于 2017-07-13 17:09:14
回答 1查看 1.1K关注 0票数 3

我正在使用您的IAR编译器的DLib,并希望将UTC-timestamp转换为本地时间戳。

我位于德国,因此我对__getzone-method的实现如下:

代码语言:javascript
复制
char const * __getzone() {
  return ":GMT+1:GMT+2:0100:(1980)032502+0:102503+0";
}

我写了一些测试代码:

代码语言:javascript
复制
time_t ts = 1509238797L;//29.10.2017-02:59:57 3 seconds before dst
struct tm* pre = localtime(&ts);

time_t after = ts + 5L;//wait 5 seconds -> 29.10.2017-02:00:02
struct tm* post = localtime(&after);

"pre“变量可以,但"post”变量包含值: 29.10.2017-03:00:02,但它应该是29.10.2017-02:00:02。

我在Visual-Studio中调试了代码,一切似乎都在那里工作。我是不是遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-13 20:04:38

我想是我自己找到的。正确的字符串是::GMT+1:GMT+2:0100:032502+0:102502+0

夏令时2点开始,2点结束,不像我想的那样是3点。我猜api的描述不是很完美。

验证DST跳转的一些测试:

代码语言:javascript
复制
//Forward
time_t ts = 1490489997L;//26.03.2017-01:59:57 3 seconds before dst
struct tm* pre = localtime(&ts);

time_t after = ts + 5L;//wait 5 seconds -> 26.03.2017-03:00:02
struct tm* post = localtime(&after);

//Backward
time_t ts = 1509238797L;//29.10.2017-02:59:57 3 seconds before dst
struct tm* pre = localtime(&ts);

time_t after = ts + 5L;//wait 5 seconds -> 29.10.2017-02:00:02
struct tm* post = localtime(&after);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45076197

复制
相关文章

相似问题

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