Clear Filters
Clear Filters

datenum input string format

4 views (last 30 days)
hasan
hasan on 18 Jul 2013
I have dates created by another software which have a different formats than recognized by MATLAB. These days are like this:
'2012-06-01T03:15:00Z'
I want to feed these dates to datenum() and extract the date and time, but datenum doesn't support this format. Is there any way to define a custom time format in matlab? or any other suggestion please
Bests
  2 Comments
Azzi Abdelmalek
Azzi Abdelmalek on 18 Jul 2013
Are T and Z always in this format?
hasan
hasan on 18 Jul 2013
yes, the format is the same all the time, just the numbers change.

Sign in to comment.

Accepted Answer

Jan
Jan on 19 Jul 2013
Edited: Jan on 19 Jul 2013
You can try to use FEX: DateStr2Num. This is 50 to 100 times faster than the powerful datenum command.
Although the format does not exactly match the style 31: "yyyy-mm-dd HH:MM:SS", the space and the last character is ignored at all. So try:
Dnum = DateStr2Num('2012-06-01T03:15:00Z', 31);
A cell string can be used as input directly also.
An alternative dull but fast Matlab code:
S = '2012-06-01T03:15:00Z';
x = S - '0';
D = datenummx( ...
x(1)*1000 + x(2)*100 + x(3)*10 + x(4), ... % Year
x(6)*10 + x(7), ... % Month
x(9)*10 + x(10), ... % Day
x(12)*10 + x(13), x(15)*10 + x(16), x(18)*10 + x(19));
As long as the input is well formatted, this works nice. But Matlab's datenum is smarter and considers e.g. overflows etc.

More Answers (3)

Azzi Abdelmalek
Azzi Abdelmalek on 18 Jul 2013
Edited: Azzi Abdelmalek on 18 Jul 2013
d='2012-06-01T03:15:00Z'
a=regexp(d,'[^T Z]+','match')
b=datestr(datenum(horzcat(a{:}),'yyyy-mm-ddHH:MM:SS'))
% or
d='2012-06-01T03:15:00Z'
a=regexprep(d,'[T Z]+',' ')

Azzi Abdelmalek
Azzi Abdelmalek on 18 Jul 2013
d='2012-06-01T03:15:00Z'
out=datestr(datenum(d,'YYYY-mm-ddTHH:MM:SS'),'YYYY-mm-dd HH:MM:SS')

Andrei Bobrov
Andrei Bobrov on 18 Jul 2013
q = '2012-06-01T03:15:00Z'
out = datenum(str2double(regexp(q,'\d*','match')));

Categories

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

Tags

Community Treasure Hunt

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

Start Hunting!