2017-01-31 5 views
0

日付形式を変換しようとしていました。例えば私はフォーマットの2種類があります。最初の日付の日付形式を他の日付と同じにする方法

形式1 Tue, 31 Jan 2017 07:41:06 GMT

フォーマット2 2017-01-31T07:41:06.7366667

をフォーマット2またはその逆で形式1と同じに変換する方法はありますか?前もって感謝します。入力および出力のための

+0

いつものように、2つのフォーマッタが必要です。 1つは文字列を解析するためのもので、もう1つは最初のフォーマッタの結果を出力するものです。しかし、古くなった 'SimpleDateFormat'クラスと' java.util.Date'を使って作業したい場合、2番目の例のミリ秒(ミリ秒の精度に限る)が失われることを理解してください。 –

+0

最初のフォーマットにマイクロ秒がないので、マイクロ秒を失うのは問題ありません。どうもありがとうございました。今、解決策はありますか? – creulo

答えて

0

使用二つの別個のフォーマッタ:

SimpleDateFormat inputFormatter = 
    new SimpleDateFormat("E, d MMM yyyy HH:mm:ss z", Locale.ENGLISH); 
SimpleDateFormat outputFormatter = 
    new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS"); 
outputFormatter.setTimeZone(TimeZone.getTimeZone("GMT")); 
String converted = 
    outputFormatter.format(
    inputFormatter.parse("Tue, 31 Jan 2017 07:41:06 GMT")); 
System.out.println(converted); 
// output: 2017-01-31T07:41:06.000 

同様のアプローチは、新しいクラスDateTimeFormatterとのJava 8で達成することができます。

関連する問題