0

我在纪元之后有几秒钟(比如 x,x 是 long long 数据类型)。我希望使用<ctime>库将其转换为 unix 时间。问题是,我想要一个 time_t 变量gmtime()来工作,我无法将我的x( long long) 转换为time_t.

这就是正在做的事情:

//x is number of seconds after epoch, I want that in unix time 
time_t t=x; 
printf("%s\n",asctime(gmtime(&t)));

我可以以某种方式x输入time_t吗?

4

1 回答 1

5

就投吧?

time_t t = (time_t) x;

它将削减前 32 位,但在您真正需要 64 位时间戳之前,您还有超过 25 年的时间。:)

当然,如果您的 epoch 与 POSIX epoch (1970-01-01 00:00:00) 不同,则可能会出现问题。

于 2012-07-20T12:09:10.133 回答