我在纪元之后有秒(比如x,x是长长的数据类型)。我希望使用<ctime>
库将其转换为unix时间。问题是,我希望gmtime()
的time_t变量有效,我无法将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
吗?
答案 0 :(得分:5)
刚投吧?
time_t t = (time_t) x;
它将削减前32位,但你仍然有超过25年,直到你真的需要64位时间戳。 :)
当然,如果您的纪元与POSIX纪元(1970-01-01 00:00:00)不同,可能会有麻烦。