1

我们通常使用 mktm() 或 mktime() 将长时间转换为日期和时间字符串。无论如何我们可以做相反的事情吗?我想将日期和时间字符串转换为长时间。但我无法从互联网上找到任何东西。供您参考,长时间是指从 01/01/1980 00:00:00 开始的秒数。

例如,如果长时间 1045872000 使用 mktm() 或 mktime() 转换为字符串时间,我们可以得到 21/02/2013 00:00:00。有反转功能吗?将 21/02/2013 00:00:00 转换为 1045872000。

4

2 回答 2

1

你有strptime但我不认为这是一个标准。

将时间的字符串表示形式转换为时间 tm 结构

于 2013-02-22T08:01:12.250 回答
0

Strftime 函数将 Normaltime 转换为 Epoch 时间

    #include<stdio.h>
   #include<stdlib.h>
    #include<time.h>
    int
   main(void)
   {
       struct tm tm;
       char buf[255];

       strptime("2001-11-13 18:31:01", "%Y-%m-%d %H:%M:%S", &tm);
       strftime(buf, sizeof(buf), "%s", &tm);
       puts(buf);
       exit(EXIT_SUCCESS);
   }

这次 2001-11-13 18:31:01 Epoch时间是1005570061

(或者)

使用转换纪元时间的系统函数。

     system("date -d 'Mon Feb 25 18:05:57 IST 2013' +'%s'");
于 2013-02-22T10:27:30.303 回答