从整数纪元时间值转换为本地时间

时间:2013-02-04 00:36:59

标签: c time epoch

我一直坚持从整数纪元时间值转换为本地时间。

我目前有时间,因为epoch存储在整数变量中,我需要一种方法将其转换为本地时间。

我已经尝试将其传递到本地时间,但它似乎无法正常工作。

如果我只是致电

,我可以让本地时间工作
  time_t rawtime;
  struct tm * timeinfo;

  time ( &rawtime );
  timeinfo = localtime ( &rawtime );

直接获取rawtime,但如果我想给localtime()一个整数值而不仅仅是当前时间,我就会陷入困境。

1 个答案:

答案 0 :(得分:7)

localtime()函数指向const time_t,因此您必须先将整数纪元值转换为time_t,然后再调用localtime

int epoch_time = SOME_VALUE;
struct tm * timeinfo;

/* Conversion to time_t as localtime() expects a time_t* */
time_t epoch_time_as_time_t = epoch_time;

/* Call to localtime() now operates on time_t */
timeinfo = localtime(&epoch_time_as_time_t);