2

Wed, 20 Feb 2013 11:41:23 GMTタイムスタンプをに変換したい2013-02-20T11:41:23Z。これどうやってするの?ISO-8601をUTC形式(2013-20-02T04:51:03Z)にしたいです。

私のコードは以下です

Date date=new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
String strDate = date.toString();
Date dt = formatter.parse(strDate );
System.out.println("Date " +dt);

出力は次のとおりです。

Exception in thread "main" java.text.ParseException: Unparseable date: "Wed Feb 20 03:50:03 PST 2013"
4

5 に答える 5

3

そのフォーマットが間違っている場合は、次を使用します。 「EEE MMM dd HH:mm:ss Z yyyy」は例外から発生します。質問では、「EEE、dd MMM yyyy HH:mm:ssZ」を使用します。 2013年2月20日水曜日11:41:23GMT

試す:

        Date date = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat(
                "EEE MMM dd HH:mm:ss Z yyyy");
        String strDate = date.toString();
        Date dt = null;
        try {
            dt = formatter.parse("Wed Feb 20 03:50:03 PST 2013");
        } catch (ParseException e) {
            e.printStackTrace();
        }
        System.out.println("Date " + dt);
        System.out.println(new Timestamp(new Date().getTime()));
于 2013-02-20T12:21:19.063 に答える
1

ISO 形式の日付文字列の解析と出力のサポートが組み込まれているJoda Timeの使用を検討してください。

new DateTime(DateTimeZone.UTC).toString()
于 2013-02-20T12:00:24.170 に答える
0
DateFormat format = new SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ss'Z'");
format.setTimeZone (TimeZone.getTimeZone ("UTC"));
Date date = new Date ();
System.out.println ("Date is: " + format.format (date));
于 2013-02-20T12:02:43.017 に答える
0

すでにDateオブジェクトがあります。あなたはformatそれをする必要がありStringます。

formatter.format(date)SimpleDateFormatコンストラクターのパターンが有効な場合は、目的の結果が得られるはずです。

上記の実装では、コードは次のようになります。

Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
String dt = formatter.format(date);
System.out.println("Date " + dt);

その結果、-のような出力になりますDate 2013-02-20T17:39:45Z

于 2013-02-20T12:02:58.900 に答える
0

解析用と出力用の 2 つの DateFormatters が必要です。出力用のものがあります。

編集: 出力は次のように機能します。

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
String output = formatter.format(new Date());
System.out.println("Date " + output);
于 2013-02-20T11:57:27.010 に答える