A problem with the date structure

Dear all,
I load some data from an excel file and I obtain D={
'dates'
[40521]
[40461]
[40370]
[40310]
[40575]
'30/01/11'
'27/02/11'
'27/03/11'
'24/04/11'
'22/05/11'
'19/06/11'
'17/07/11'
'14/08/11'
[40856]
[40796]
[40705]
};
I know that is has to do with the setting of excel and that I should format the dates.
Can I correct this problem within Matlab so as to have only this format '17/07/11' and not date numbers?
thanks

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 29 Jul. 2012

0 Stimmen

idx_to_change = cellfun(@isnumeric, D);
dateshift = 695422; %1904 date system; 693960 for 1900 date system
D(idx_to_change) = cellstr( datestr( [D{idx_to_change}] + dateshift ) );

4 Kommentare

salva
salva am 29 Jul. 2012
Bearbeitet: salva am 29 Jul. 2012
thank you walter. Yet I obtain '12-Jun-2011' instead of 12/9/2011 and also these dates that are created are wrong.
any suggestions?
thanks
salva
salva am 29 Jul. 2012
Bearbeitet: salva am 29 Jul. 2012
I tried
idx_to_change = cellfun(@isnumeric, D);
dateshift =693960; %1904 date system; 693960 for 1900 date system
zz = cellstr( datestr( [D{idx_to_change}] + dateshift ) );
newdates=datestr(zz, 'mm/dd/yy')
D(idx_to_change)=cellstr(newdates);
and it worked.
For some reason when I issue the command
newdates=datestr(zz, 'mm/dd/yy')
I obtain the output day/month/year which I should not expect as I have specified 'mm/dd/yy'
Why is this the case?
Could you please verify the correctness of the above code?
thanks
newdates = cellstr( datestr( [D{idx_to_change}] + dateshift, 'mm/dd/yy' ) );
salva
salva am 29 Jul. 2012
thank you:)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by