2014-03-28 45 views
1

我有一個時間結構,看起來像這樣:如何時間結構轉換爲ISO YYYY-MM-DD的8601格式在Matlab?

time.year=str2num(fileNames(i).name(29:32)); 
time.month=str2num(fileNames(i).name(33:34)); 
time.day=str2num(fileNames(i).name(35:36)); 
time.hour=str2num(fileNames(i).name(37:38)); 
time.min=str2num(fileNames(i).name(39:40)); 
time.sec=30; 
time.UTC=-7; 

,我需要從這個ISO 8601 YYYY-MM-DD的格式來獲得,任何建議,如何做到這一點?

+1

如果你想要去的權利Matlab的'datenum'值從這些文件名和縮短解析代碼,你可以不喜歡'T = datenum([文件名(我) .NAME(29:40) '30'], 'YYYYMMDDHHMMSS');' –

回答

2

可以使用datestr功能:

timeVec = [time.year time.month time.day time.hour time.min time.sec]; 
timeStr = datestr(timeVec,'yyyy-mm-dd'); 

會給你當地的日期/時間。

timeVec = [time.year time.month time.day time.hour-time.UTC time.min time.sec]; 
timeStr = datestr(timeVec,'yyyy-mm-dd'); 

如果您的工作時間翻到第二天,應提供Zulu日期/時間。

要時間字符串添加到您的輸出,只是改變了格式字符串'yyyy-mm-dd HH:MM:SS'

另一個很好的資源是Mathwork的documentaion on representing dates and times in MATLAB.

相關問題