在c中用ctime格式化Unix时间戳

时间:2012-09-05 17:00:54

标签: c unix unix-timestamp ctime

我正在尝试使用ctime格式化一个10位的Unix时间戳(当前是一个字符串)。

但是,ctime()需要一个类型为time_t的参数,而不是一个字符串。

在使用ctime之前我该怎么办? 换句话说,我可以轻松地将字符串转换为time_t吗?

2 个答案:

答案 0 :(得分:10)

你说你有一个像1346426869这样的字符串,并希望它是一个time_t?

time_t raw_time = atoi("1346426869");
printf("current time is %s",ctime(&raw_time));

> current time is Fri Aug 31 11:27:49 2012

答案 1 :(得分:0)

time_t类型只是一个整数。这是自大纪元以来的秒数。您需要先解析字符串。

从这里开始:

http://www.gnu.org/software/libc/manual/html_node/General-Time-String-Parsing.html#General-Time-String-Parsing

从那里开始前进。