2014-02-17 114 views
-1

如何在matlab中使用datastr或其他函數從「30-4-2013 16:36:58」數據獲取日期?date(day-month-year)的任何matlab函數

它給了我奇怪的結果,因爲日期早於月份。

YT = datestr( ' 「30-4-2013 16點36分58秒」', 'DD-MM-YY')

YT = 35年4月10日

問題是我有大量的數據< 112577x1 cell>和原始數據是這樣的: 「4-2-2014 16:36:58」 「4-2-2014 16:37:03」 「4-2-2014 16 :37:08「

+1

你試過mm-dd-yyyy嗎? [鏈接引用](http://nf.nci.org.au/facilities/software/Matlab/techdoc/ref/datestr.html) –

+0

我也給出了奇怪的結果。 yt = datestr(''30-4-2013 16:36:58'','mm-dd-yy') yt = 10-04-35 datestr將第一個數據理解爲月份,我必須改爲day , 怎麼樣? – user3318739

回答

0

隨着單元陣列,在Bibek蘇貝迪的答案變體將工作:

out = datestr(datenum(C,'"dd-mm-yy HH:MM:ss"'),'dd-mm-yy'); 

如果您需要其他輸出,您可以更改第二個格式字符串。順便說一句,如果你通過閱讀類似textscan的文本文件來獲得單元陣列,你應該可以在沒有"的情況下通過將它們添加爲分隔符並將多個分隔符作爲一個分隔符來讀取它。

0

Matlab語法在美國表示法中獲取日期,即:mm-dd-yyyy。 如果你寫dd-mm-yyyy,你會得到亂碼,如在2013年4月30日。 寫作30/Apr/2013或04-30-2013可以解決問題並給出正確的答案。

+0

問題是我有一堆數據<112577x1單元>和原始數據是:「4-2-2014 16:36:58」 「4-2-2014 16:37:03」 – user3318739

3

通過只寫30-4-2013,MATLAB不知道這是字符串還是日期?首先,它轉換成串行日期號,然後只將其轉換爲日期波紋管

>> datestr(datenum('30-4-2013 16:36:58','dd-mm-yy')) 

這會給結果作爲

>> 30-Apr-2013 
+0

問題是我有一堆數據<112577x1單元>,原始數據是:「4-2-2014 16:36:58」 「4-2-2014 16:37:03」 – user3318739