使用C将UNIX时间戳转换为秒/分钟/小时/月/年

时间:2014-03-23 10:14:03

标签: c date unix timestamp

使用C,我想将UNIX时间戳编号转换为几个常用日期数据。

如何在使用C时将UNIX时间戳(如12997424)转换为表示秒,分钟,小时和天的不同数字?

2 个答案:

答案 0 :(得分:4)

使用标准库中的gmtimelocaltime。原型在time.h中定义。

ADDED&编辑:

例如,以下代码打印当前时间戳,小时和分钟:

#include <stdio.h>
#include <time.h>

void main() {
    time_t      t;
    struct tm   ttm;

    t = time(NULL);
    printf("Current timestamp: %d\n", t);
    ttm = * localtime(&t);
    printf("Current time: %02d:%02d\n", ttm.tm_hour, ttm.tm_min);
}

答案 1 :(得分:0)

以下是如何使用localtime将time_t转换为tm作为本地时间的示例(信用转到www.cplusplusreference.com):

#include <stdio.h>
#include <time.h>

int main() {
  time_t rawtime;
  struct tm * timeinfo;

  time (&rawtime);
  timeinfo = localtime (&rawtime);
  printf ("Current local time and date: %s", asctime(timeinfo));

  return 0;
}