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

 採用された回答

Walter Roberson
Walter Roberson 2012 年 7 月 29 日

0 投票

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 件のコメント

salva
salva 2012 年 7 月 29 日
編集済み: salva 2012 年 7 月 29 日
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 2012 年 7 月 29 日
編集済み: salva 2012 年 7 月 29 日
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
Walter Roberson
Walter Roberson 2012 年 7 月 29 日
newdates = cellstr( datestr( [D{idx_to_change}] + dateshift, 'mm/dd/yy' ) );
salva
salva 2012 年 7 月 29 日
thank you:)

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeDates and Time についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by