【问题标题】:Converting from an integer epoch time value to local time从整数纪元时间值转换为本地时间
【发布时间】:2013-01-18 16:43:40
【问题描述】:

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

我目前将自纪元以来的时间存储在一个整数变量中,我需要一种方法将其转换为本地时间。

我尝试将它传递到本地时间,但它似乎不起作用。

只要我打电话,我就能得到本地时间来上班

  time_t rawtime;
  struct tm * timeinfo;

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

直接获取原始时间,但如果我想给 localtime() 一个整数值而不是当前时间,我会卡住。

【问题讨论】:

标签: c time epoch


【解决方案1】:

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);

【讨论】:

  • 声明以_s_t 结尾的变量是一种不好的编程习惯。
  • @MCCCS 可能,但它消除了可以说更有价值的代码示例。如果有人复制这个并想要保留一个不必要的冗长和繁琐的变量名,那么这取决于他们(IMO),而不是有损奥斯汀菲利普斯的答案。
猜你喜欢
  • 2015-12-22
  • 2020-08-03
  • 2013-03-02
  • 2016-12-24
  • 1970-01-01
  • 2014-10-17
  • 1970-01-01
  • 2011-06-19
  • 2018-06-05
相关资源
最近更新 更多