MATLAB将时间打印为字符串

q9yhzks0  于 7个月前  发布在  Matlab
关注(0)|答案(2)|浏览(100)

将时间打印为HH:MM:SS的最有效方法是什么?
我把它设置成我的时间是x秒。然后计算与x秒相关的小时、分钟和剩余秒数。
然后当我想把它作为一个字符串打印到一个图上时,我这样做:

sprintf('Time: %d:%d:%d', hours, minutes, seconds);

不幸的是,这看起来很难看,如果我有小时或分钟等于0,我得到的是0:0:23。
我想我可以在做sprintf之前把小时,分钟,秒改成字符串。有没有更有效的MATLAB方法?谢谢你,谢谢

yx2lnoni

yx2lnoni1#

日期格式的最佳选择是datestr,例如:

datestr(now, 'HH:MM:SS')

当谈到sprintf,然后看看formatting parameters。你会得到一个更好的结果与zero-padding:

sprintf('Time: %02d:%02d:%02d', hours, minutes, seconds)
2ic8powd

2ic8powd2#

为了将给定的秒数格式化为格式良好的字符串,您可能应该使用duration,自MATLAB R2014 b起可用:

>> seconds = 5818956;
>> sprintf("Time: %s", duration(0, 0, seconds, Format = "hh:mm:ss"))

ans = 

    "Time: 1616:22:36"

(The两个0参数分别是小时数和分钟数。
还有一个特殊的seconds函数,可以从秒数创建duration,但是你需要另外两行来设置Format,然后打印格式化的时间。

相关问题