我正在尝试将C中的时间戳拆分为合适的格式,此格式为hh:mm:ss
。
时间戳以hhmmss
格式存储为正整数。有没有办法在C中格式化?
我没有显示代码,因为我不知道从哪里开始,我的想法是将时间戳存储在字符数组中,然后每2个字符打印一个':'
字符。
示例输出:
timestamp = 123456
我希望它显示为12:34:56
timestamp = 010203
我希望它显示为01:02:03
答案 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);