将纪元后的秒数转换为unix时间

时间:2012-07-20 12:00:27

标签: c++

我在纪元之后有秒(比如x,x是长长的数据类型)。我希望使用<ctime>库将其转换为unix时间。问题是,我希望gmtime()的time_t变量有效,我无法将xlong 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吗?

1 个答案:

答案 0 :(得分:5)

刚投吧?

time_t t = (time_t) x;

它将削减前32位,但你仍然有超过25年,直到你真的需要64位时间戳。 :)

当然,如果您的纪元与POSIX纪元(1970-01-01 00:00:00)不同,可能会有麻烦。