将时间打印为HH:MM:SS的最有效方法是什么?我把它设置成我的时间是x秒。然后计算与x秒相关的小时、分钟和剩余秒数。然后当我想把它作为一个字符串打印到一个图上时,我这样做:
sprintf('Time: %d:%d:%d', hours, minutes, seconds);
不幸的是,这看起来很难看,如果我有小时或分钟等于0,我得到的是0:0:23。我想我可以在做sprintf之前把小时,分钟,秒改成字符串。有没有更有效的MATLAB方法?谢谢你,谢谢
yx2lnoni1#
日期格式的最佳选择是datestr,例如:
datestr
datestr(now, 'HH:MM:SS')
当谈到sprintf,然后看看formatting parameters。你会得到一个更好的结果与zero-padding:
sprintf
sprintf('Time: %02d:%02d:%02d', hours, minutes, seconds)
2ic8powd2#
为了将给定的秒数格式化为格式良好的字符串,您可能应该使用duration,自MATLAB R2014 b起可用:
duration
>> seconds = 5818956; >> sprintf("Time: %s", duration(0, 0, seconds, Format = "hh:mm:ss")) ans = "Time: 1616:22:36"
(The两个0参数分别是小时数和分钟数。还有一个特殊的seconds函数,可以从秒数创建duration,但是你需要另外两行来设置Format,然后打印格式化的时间。
0
seconds
Format
2条答案
按热度按时间yx2lnoni1#
日期格式的最佳选择是
datestr
,例如:当谈到
sprintf
,然后看看formatting parameters。你会得到一个更好的结果与zero-padding:2ic8powd2#
为了将给定的秒数格式化为格式良好的字符串,您可能应该使用
duration
,自MATLAB R2014 b起可用:(The两个
0
参数分别是小时数和分钟数。还有一个特殊的
seconds
函数,可以从秒数创建duration
,但是你需要另外两行来设置Format
,然后打印格式化的时间。