# converting yyyymmdd date to matlab date number

32 views (last 30 days)
joseph Frank on 26 Jul 2011
Commented: Victor Martinez on 26 May 2022
I have a column of dates that have the following format: 19940127 how can i get a matlab number that corresponds to 01/27/1994?

Andrew Newell on 26 Jul 2011
For each date, use a command like this:
datestr(datenum('19940127','yyyymmdd'),'mm/dd/yyyy')
Elias de Korte on 1 Apr 2019
What if I have an time vector that looks like this: 2011021101 (yyyymmddHH). How can i convert this vector to matlab serial numbers?
Peter Perkins on 2 Apr 2019
See Steve Lord's answer. If you have a numeric value, you will need to strip off the hours and divide by 100. If you have text, just use a different format - yyyyMMddHH.

Jan on 27 Jul 2011
If "19940127" is a string, this is much faster than the DATESTR/DATENUM approach:
S = '19940127';
D = [S(5:6), '/', S(7:8), '/', S(1:4)];
If the input is a number, convert it to a string at first:
N = 19940127;
S = sprintf('%d', N);

Steven Lord on 1 Apr 2019
Is that stored as a number or as text? If it is stored as a number, use datetime with the appropriate ConvertFrom option.
d = 19940127;
dt = datetime(d, 'ConvertFrom', 'yyyymmdd')
If it is stored as text, specify the InputFormat.
d = '19940127';
dt = datetime(d, 'InputFormat', 'yyyyMMdd')
##### 3 CommentsShow 1 older commentHide 1 older comment
Stephen23 on 26 May 2022
Edited: Stephen23 on 26 May 2022
I would like to know if having my date and time of a whole year stored all together as a numeric value in a column vector (f example: 201801010205 yyyymmddHHMM being that 01-Jan-2018 02:05)"
Best avoided: it would be better if you created or imported that directly as DATETIME, or even as text. Note that functions such as READTABLE provide a lot of control over importing, so there is little reason for the misuse of numeric type like that.
N = 201801010205;
D = datetime(string(N),'inputFormat','yyyyMMddHHmm')
D = datetime
01-Jan-2018 02:05:00
Victor Martinez on 26 May 2022
Thank you Stephen ! importing the column with the date and time as text instead of number and then converting it to datetime with the proper format as you wrote worked perfectly.
Again, thanks for your time and help.