MATLAB Answers

Convert Time Given in Seconds to Minute, Seconds, Milliseconds

조회 수: 17(최근 30일)
Soeun Lee
Soeun Lee 2021년 8월 5일
답변: Stephen 2021년 8월 5일
Hi all,
I am trying to convert a time given in seconds such as 183.55s into minute, seconds, milliseconds.
For minute, I'm using: init_mn=fix(init_time/60), which gives me the correct answer.
How can I obtain the seconds and miliseconds without rounding?
Thank you in advance!


Star Strider
Star Strider 2021년 8월 5일
This is simply a straightforward format change:
t = seconds(183.55)
t = duration
183.55 sec
t.Format = 'hh:mm:ss.SSS'
t = duration
producing the desired result.

Chunru 2021년 8월 5일
[h, m, s] = hms(duration([0 0 183.55]))
h = 0
m = 3
s = 3.5500
% for sec and fractional sec
si = floor(s)
si = 3
sf = s-si
sf = 0.5500

Stephen 2021년 8월 5일
If you really need minutes (i.e. and not roll-over to hours for >59 minutes) then you can calculate this yourself, e.g.:
inp = 7654.321; % time in seconds
t_min = ceil(1000*inp);
t_ms = mod(t_min,1000) % milliseconds
t_ms = 321
t_min = fix(t_min/1000);
t_sec = mod(t_min,60) % seconds
t_sec = 34
t_min = fix(t_min/60) % minutes
t_min = 127


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by