c - 从日期获取 unix 时间

标签 c date time

我有以下变量:

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/

相关文章:

创建线程 - 传递参数

c - 如何处理不能通过 int 在 c 中存储的大数

javascript - momentJs 解析日期 : Unexpected behaviour

linux - 本地网络中的 NTP

Javascript 本地时间与 UTC 时间的转换缩短了两个小时

android - Linux 蓝牙找不到具有 UUID 的 Android 服务

c - C 中的 Scanf/Printf...这是怎么回事?

javascript - D3 时区偏移量移至前一天

java - 在android中将时间戳转换为当前日期

spring-boot - Spring Boot应用程序退出时间