MATLAB: Create a numeric variable DATE+HOUR

datenumdateshelpMATLABvariables

Hi. I hope you're ok.
I write this question because I want to create a new numeric variable which contains the date (i.e. 12/09/2019) and the hour (i.e. 01:15:20). I did this in Excel and the result is given in the following photo:
However, If I try to do this in MATLAB (R19b) the result is quite different.
Can you tell me if I'm doing something wrong? I don't know if the sintaxis of the date and hour are correct, and if not, what's wrong with that (I want the result given in my Excel sheet).
Thanks!
David

Best Answer

There's rarely a good reason to use datenum rather than datetime values. See Why are datetime arrays better than datenum?
% Convert to datetime
Time = '01:15:02 12/09/19';
datetime(Time,'InputFormat','HH:mm:ss MM/dd/yy')
ans = datetime
09-Dec-2019 01:15:02
Date numbers in Excel represent the number of days since Jan 1 1900 whereas date numbers in Matlab represent the number of days since Jan 1,0000 so there's a 693960 day difference (see documentation).
If you have the Financial Toolbox you could use x2mdate / m2xdate or you could convert it on your own using the offset mentioned in the documentation.
Related Question