2016-04-19 151 views
0

我有TimeStamp時間爲字符串1374160160這相當於07/18/2013從時間戳到正常日期

如果有什麼方法可以將此TimeStamp轉換爲格式爲July 18, 2013的日期?

這是我的代碼片段:

try{ 
    String timeStamp = "1374160160"; 
    DateFormat sdf = new SimpleDateFormat("MM/dd/yyyy"); 
    Date netDate = (new Date(timeStamp)); 
    return sdf.format(netDate); 
} catch(Exception ex) { 
    return ""; 
} 

它總是返回01/17/1970爲什麼呢?

第二個問題是new Date(String)已棄用。

綜上所述:

如何創建時間戳正常日期(July 18, 2013),避免過時方法?

+0

它應該是'新日期(LONG)'而不是'新日期(STRING)'? – Tin

+0

請在發佈之前搜索Stack Overflow。你的問題的所有部分已經被詢問並已經*很多時間了。 –

回答

1

您的timeStamp實例包含秒,但是JavaDate構造函數需要毫秒。經由documentation

分配Date對象並對其進行初始化,以表示從被稱爲「曆元」,即1970年1月1日的標準鹼的時間指定的毫秒數,00:00:00 GMT

所以,你應該用這樣的:

String timeStamp = "1374160160"; 
long timeMillis = Long.valueOf(timeStamp) * 1000; 
Date netDate = new Date(timeMillis); 

代替:

String timeStamp = "1374160160"; 
Date netDate = (new Date(timeStamp));