How to convert string to time?

Sorry for the silly question, but could anyone show me how to convert a string, such as, '04:55' to numerical values of hour and minute?
Thank you very much.

 Accepted Answer

str2num(strrep('04:55',':',''))

1 Comment

Thank you very much. This is a very smart way of handling this.

Sign in to comment.

More Answers (2)

If you want an actual decimal minute value:
x = '04:55'
y = str2double(regexp(x,':','split'))
z = y*[1;1/60]
(Leave off the last line if you just want minutes and seconds as separate array elements.)

1 Comment

It's very nice to see the use of regexp to split the string into two values.
This could be a even better solution.
Thank you very much.

Sign in to comment.

Is the string fixed width, with a leading 0? If so then,
H = T(1) - '0' * 10 + T(2) - '0';
M = T(4) - '0' * 10 + T(5) - '0';
Or
H = str2num(T(1:2));
M = str2num(T(4:5));
Or
H = [10 1] * (T(1:2)-'0').';
M = [10 1] * (T(4:5)-'0').';

1 Comment

Thank you very much for the reply. This is another way of achieving it.

Sign in to comment.

Categories

Community Treasure Hunt

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

Start Hunting!