Converting hh:mm:ss into seconds

517 views (last 30 days)
tethys
tethys on 20 Jan 2012
Answered: Steven Lord on 1 Sep 2021
Hi all,
I want to read the vectors which are hh:mm:ss (14:35:59.812) format and convert it to seconds. How can I do this in matlab?
Best

Accepted Answer

Andreas Goser
Andreas Goser on 20 Jan 2012
Is this what you are looking for?
t='14:35:59.812';
[Y, M, D, H, MN, S] = datevec(t);
H*3600+MN*60+S
  4 Comments
Arshey Dhangekar
Arshey Dhangekar on 1 Sep 2021
I want to convert Time column ( HH:MM:SS) to min, there is a direct command time2num but it requires toolbox and it's paid.So without using time2num how can I convert into minutes. I tried with datetime also but I got error.
table=readtable('sample.csv'):
times = datetime(table.Time,'InputFormat','HH:mm:ss:SSS');
times = hour(times).*60 + minute(times) + second(times)./60;

Sign in to comment.

More Answers (3)

per isakson
per isakson on 20 Jan 2012
The first and the last cell returns the result I think you are looking for. See help on DATENUM
datenum( '14:35:59.812', 'HH:MM:SS.FFF' ) .* (24*60*60) - ...
datenum( '00:00:00.000', 'HH:MM:SS.FFF' ) .* (24*60*60)
datestr( datenum( '00:00:00.000', 'HH:MM:SS.FFF' ), 'yyyy-mm-dd' )
datenum( '14:35:59.812', 'HH:MM:SS.FFF', 0 ) .* (24*60*60)
  1 Comment
tethys
tethys on 20 Jan 2012
Thansk for the answer, it is very useful information:)

Sign in to comment.


Peter Seibold
Peter Seibold on 18 Apr 2021
About 100 times faster is:
t='14:35:59.812';
seconds=sum(sscanf(t,'%f:%f:%f').*[3600;60;1]);

Steven Lord
Steven Lord on 1 Sep 2021
t='14:35:59.812';
F = 'hh:mm:ss.SSS';
du = duration(t, 'InputFormat', F, 'Format', F)
du = duration
14:35:59.812
format longg % To make s look nicer
s = seconds(du)
s =
52559.812

Categories

Find more on Dates and Time in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!