2016-04-19 3 views
0

私はTimeStamp時を文字列1374160160としています。これは07/18/2013です。タイムスタンプから通常の日付へ

このタイムスタンプをフォーマットJuly 18, 2013の日付に変換する方法がある場合は、

これは私のコードスニペットです:それは常に01/17/1970理由を返し

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

第2の問題は、new Date(String)が推奨されなくなりました。

要約すると:

がどのようにタイムスタンプから通常の日付( July 18, 2013)を作成し、非推奨のメソッドを避けるために?

+0

''新しい日付(STRING)ではなく ''新しい日付(LONG) 'でなければなりませんか? – Tin

+0

投稿する前にスタックオーバーフローを検索してください。あなたの質問のすべての部分がすでに尋ねられ、多くの時間に答えられています。 –

答えて

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)); 
関連する問題