给定hhmmss格式的整数时间,如何将其格式化为hh:mm:ss

时间:2014-03-17 02:08:44

标签: c time timestamp

我正在尝试将C中的时间戳拆分为合适的格式,此格式为hh:mm:ss

时间戳以hhmmss格式存储为正整数。有没有办法在C中格式化?

我没有显示代码,因为我不知道从哪里开始,我的想法是将时间戳存储在字符数组中,然后每2个字符打印一个':'字符。

示例输出:

timestamp = 123456

我希望它显示为12:34:56

timestamp = 010203

我希望它显示为01:02:03

2 个答案:

答案 0 :(得分:4)

int timestamp = 10203;
int hour = timestamp / 10000;
int minute = timestamp % 10000 / 100;
int second = timestamp % 100;

printf("%02d:%02d:%02d\n", hour, minute, second);

当时间戳以0开头时要小心,因为010203是一个八位字节整数字,结果可能不是你所期望的。

答案 1 :(得分:3)

您可以使用整数除法将数字按您喜欢的方式分割。

例如,要获得你可以做的秒数

seconds = timestamp % 100

并且可以获得分钟

minutes = (timestamp / 100) % 100

然后您可以使用printf以您喜欢的任何格式打印时间。

e.g。

printf("%02d:%02d", minutes, seconds);