2012-08-16 72 views
0

我有這樣的電池陣列:UTC當地小時MATLAB

date_hour = '30/07/2012 00:00' 
       '30/07/2012 01:00' 
       '30/07/2012 02:00' 
       '30/07/2012 03:00' 
       '30/07/2012 04:00' 
       '30/07/2012 05:00' 
       '30/07/2012 06:00' 
       '30/07/2012 07:00' 
       '30/07/2012 08:00' 
       '30/07/2012 09:00' 
       '30/07/2012 10:00' 
       '30/07/2012 11:00' 
       '30/07/2012 12:00' 
       '30/07/2012 13:00' 
       '30/07/2012 14:00' 
       '30/07/2012 15:00' 
       '30/07/2012 16:00' 
       '30/07/2012 17:00' 
       '30/07/2012 18:00' 
       '30/07/2012 19:00' 
       '30/07/2012 20:00' 
       '30/07/2012 22:00' 
       '30/07/2012 21:00' 
       '30/07/2012 23:00' 

的時間按UTC給出。一旦當地時間是-3,我怎樣才能轉換到當地時間?

回答

4

由於matlab日期格式是自1月1日以來的天數,0000以時間爲小數,所以您可以簡單地從matlab日期格式中減去3/24。

localDateNum = datenum(date_hour,'dd/mm/yyyy HH:MM') - 3/24; 

然後,你可以將它轉換回字符串,如果你想用datestr。

date_hour_local = datestr(localDateNum,'dd/mm/yyyy HH:MM'); 
+0

OK!這很棒! – 2012-08-16 14:35:25

0

只是爲了讓您瞭解另一種解決方案,你可以使用MATLAB addtodate -function:

date_local_num = addtodate(datenum(date_hour,'dd/mm/yyyy HH:MM'),-3,'hour'); 
date_local = datestr(date_local_num,'dd/mm/yyyy HH:MM'); 

看到文檔的詳細信息:

http://de.mathworks.com/help/matlab/ref/addtodate.html