Fraction of a day to HH:MM:SS

9 views (last 30 days)
Charlie Wood
Charlie Wood on 9 Feb 2017
Commented: Charlie Wood on 9 Feb 2017
Good day everyone.
I have a date, 17037.46688591, and want to convert it to a datetime.
I'm not sure what to include in the datetime InputFormat to allow for the fraction of a day to get the HH:MM:SS.
I can get the date:
inputdate = '17037.46688591';
jday = inputdate(1:5);
date = datetime(jday,'InputFormat','yyDDD')
date = 06-Feb-2017
How do I get .46688591 into HH:MM:SS?
I've tried a few things but I must be doing something wrong. Thanks for the help.

Accepted Answer

Guillaume
Guillaume on 9 Feb 2017
This would work:
inputdate = '17037.46688591';
jday = inputdate(1:5);
date = datetime(jday, 'InputFormat', 'yyDDD') + days(mod(str2double(inputdate), 1))
assuming that .46688591 is a fraction of a day.
  1 Comment
Charlie Wood
Charlie Wood on 9 Feb 2017
Awesome, thank you. Answer came out exactly as needed. Didn't think to just use days() to turn it into a duration. I think I need more coffee/practice. Thanks again.

Sign in to comment.

More Answers (0)

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!