【发布时间】:2014-04-30 15:12:00
【问题描述】:
使用 C,我想将一个 UNIX 时间戳数字转换为几个常用的日期数据。
如何在使用 C 时将 UNIX 时间戳(如 12997424)转换为表示秒、分钟、小时和天的不同数字?
【问题讨论】:
使用 C,我想将一个 UNIX 时间戳数字转换为几个常用的日期数据。
如何在使用 C 时将 UNIX 时间戳(如 12997424)转换为表示秒、分钟、小时和天的不同数字?
【问题讨论】:
使用标准库中的gmtime 或localtime。原型在 time.h 中定义。
添加和编辑:
例如,以下代码打印当前时间戳、小时和分钟:
#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);
}
【讨论】:
struct tm。
time_t 类型理解为int。
这是一个如何使用 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;
}
【讨论】: