我有以下变量:
int year = 2013;
int month = 04;
int day = 07;
int hour = 13;
int min = 42;
int sec = 00;
...我需要从中提取“纪元”时间或 unix 时间。
这在标准 C 中如何实现? 在这种情况下,unix 时间应该是:1365342120 .
最佳答案
如果您从未使用过此结构,上面的答案会遗漏一些您可能不会注意到的事情:
struct tm myTm = {
.tm_sec = sec,
.tm_min = min,
...
.tm_mon= mon-1,
.tm_year= year-1900,
};
time_t t = mktime(&myTm);
printf("%ju\n", (uintmax_t) t);
您应该将月份减去 1,将年份减去 1900,否则您会得到错误的答案。
关于c - 从日期获取 unix 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15861997/