首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mktime返回错误的时间戳(关闭一个月)

问mktime返回错误的时间戳(关闭一个月)
EN

Stack Overflow用户
提问于 2014-05-16 06:08:48
回答 1查看 1.7K关注 0票数 4

我使用mktime从当前本地时间创建unix时间戳:

代码语言:javascript
复制
#include <time.h>

int _tmain(int argc, _TCHAR* argv[])
{
  struct tm info;

  // 16.05.2014
  info.tm_mday = 16;
  info.tm_mon = 5;
  info.tm_year = 114; // Years since 1900

  // 08:00:00 Uhr
  info.tm_hour = 8;
  info.tm_min = 0;
  info.tm_sec = 0;

  // Convert to Unix timestamp
  info.tm_isdst = -1;
  time_t timestamp = mktime(&info);
  printf("Timestamp: %i", timestamp);
}

这给了我:

1402898400

当将其转换回人类可读的时间(通过某个网站)时,这将转换为:

2014年6月16日08:00

正如你所看到的,这比我预期的少了一个月(5月(5),6月6)。为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-16 06:16:56

C11 7.27.1时间组成 int tm_sec;//秒之后的分钟- 0,60 int tm_min;//分钟后的小时- 0,59 int tm_hour;//小时自午夜- 0,23 int tm_mday;//日月- 1,31 int tm_mon;//月自1月- 0,11 int tm_year;//年自1900年int tm_wday;//日自星期日- 0,6 int tm_yday;//日自1月1日- 0,365 int tm_isdst;//夏时旗

tm_mon从0开始,而不是1。因此,5的价值意味着现在是六月,而不是五月。

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

https://stackoverflow.com/questions/23693669

复制
相关文章

相似问题

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