转换时间戳EEE,d MMM yyyy HH:mm:ss GMT格式为yyyy-MM-dd'T'HH:mm:ss'Z'格式?

时间:2013-02-20 11:55:37

标签: java date

我想将时间戳Wed, 20 Feb 2013 11:41:23 GMT转换为2013-02-20T11:41:23Z。我怎样才能做到这一点?我想要UTC格式的ISO-8601(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"

5 个答案:

答案 0 :(得分:3)

你的格式有什么不对,请使用:     “EEE MMM dd HH:mm:ss Z yyyy”这就是出现异常的问题,在你有“EEE,dd MMM yyyy HH:mm:ss Z”的问题中 for Wed,2013年2月20日11:41:23 GMT

尝试:

        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()));

答案 1 :(得分:1)

考虑使用Joda Time,它内置支持解析和输出ISO格式的日期字符串。

new DateTime(DateTimeZone.UTC).toString()

答案 2 :(得分: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);

答案 3 :(得分: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));

答案 4 :(得分:0)

您已有Date个对象。您只需要formatString

如果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的输出。