2013-02-24 263 views
0

如何將UNIX時間戳轉換爲系統時間和日期?在我的情況下,EST時間。如何在UNIX中將UNIX時間戳轉換爲EST時間?

+0

可能重複:http://stackoverflow.com/questions/11989119/utc-to-local-hour-in-matlab – 2013-02-24 02:04:56

+0

https://blogs.msdn.com/b/oldnewthing/archive/2003/09/05/54806.aspx?Redirected=true – 2013-02-24 02:28:48

+1

不是重複 – 2013-02-24 20:15:48

回答

1

您可以使用datenum將幾乎任何格式的時間字符串轉換爲序列日期編號,然後使用datestrdatevec轉換爲您需要的任何格式。

+0

但是這樣做,你忽略了UNIX時間戳是基於UTC的事實,而MATLAB的datenum沒有關於時區的概念,因此在當地時間「區域」工作。 – glglgl 2014-11-27 15:29:59

2

從1970年1月1日午夜開始,Unix時間戳往往是以毫秒爲單位的形式,但有時從同一時刻起以秒爲單位。將它們轉換爲Matlab datenum可以通過datenum([1970 1 1 0 0 timestamp/1000])完成(請參閱related Mathworks tech-note)。如果時間戳不是以毫秒爲單位,而是以秒爲單位,則不要用1000除。一旦獲得了datenum,就可以使用datestr函數將其轉換爲您喜歡的任何格式的字符串。

或者,你可以使用Java的java.util.Date(timestamp)的時間戳轉換爲Java日期對象,然後使用日期的方法來轉換爲Java字符串,然後用Matlab的char功能,將其轉換成Java字符串。

0

我有同樣的問題,並用功能幫助自己喜歡

function dv=datevec_from_timestamp(ts) 
% Converts a UNIX timestamp (UTC based) to a (local!) datevec which can 
% then be used as usual with datestr, datenum etc. 
cal=java.util.Calendar.getInstance; 
cal.setTimeInMillis(ts * 1000) 
dv = [cal.get(cal.YEAR) cal.get(cal.MONTH)+1 cal.get(cal.DAY_OF_MONTH) ... 
    cal.get(cal.HOUR) cal.get(cal.MINUTE) cal.get(cal.SECOND)]; 
+0

作爲練習,處理毫秒和具有'ts'的向量。 – glglgl 2014-11-27 16:24:47

相關問題