6

Java で、"Wed, 05 Jun 2013 00:48:12 GMT" を Date オブジェクトに解析してから、日付オブジェクトを同じ形式で出力する方法。

私はこれを試しました:

String dStr= "Wed, 05 Jun 2013 00:48:12 GMT"; 
SimpleDateFormat ft =  new SimpleDateFormat ("E, dd MMM yyyy hh:mm:ss ZZZ"); 
Date t = ft.parse(dStr); 
System.out.println(t); 
System.out.println(ft.format(t));

結果は

Wed Jun 05 10:48:12 EST 2013
Wed, 05 Jun 2013 10:48:12 +1000 

前もって感謝します:

4

4 に答える 4

4

どちらもエラーはありません。同じ時刻Wed, 05 Jun 2013 00:48:12 GMTWed, 05 Jun 2013 00:48:12 GMT表しています。最初の時刻は GMT (Grenweech) で、2 番目の時刻はオーストラリアの同じ時刻 (EST) です。タイム ゾーンを適切に構成するだけで済みます。

同じ日付を GMT で表示したい場合は、次の行をコードに追加します。

ft.setTimeZone(TimeZone.getTimeZone("GMT"));

ここで、タイムゾーンを「+0000」ではなく「GMT」として日付を印刷したい場合は、@ HewWolff の回答に従ってください(ZZZ の代わりに zzz を使用してください)。

于 2013-08-13T22:55:43.967 に答える
1

これはあなたの問題を解決します:

import java.text.*;
import java.util.*;

public class DateIt{
    public static void main(String [] args) throws Exception{
        String dStr= "Wed, 05 Jun 2013 00:48:12 GMT"; 
        SimpleDateFormat ft =  new SimpleDateFormat ("E, dd MMM yyyy HH:mm:ss z"); 
        Date t = ft.parse(dStr); 
        TimeZone gmt = TimeZone.getTimeZone("England/London");
        ft.setTimeZone(gmt);
        System.out.println(t); 
        System.out.println(ft.format(t));
        }
}
于 2013-08-13T23:08:55.290 に答える
1

zzzではなく、あなたが欲しいようですZZZ。これは、タイムゾーンを数字ではなくコードとして読み書きするのに役立ちます。

于 2013-08-13T22:53:56.350 に答える