2

我想将时间戳转换Wed, 20 Feb 2013 11:41:23 GMT2013-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"
4

5 回答 5

3

您的格式有什么问题,请使用: “EEE MMM dd HH:mm:ss Z yyyy”,这就是异常出现的原因,在问题中您有“EEE,dd MMM yyyy HH:mm:ss Z ”格林威治标准时间 2013 年 2 月 20 日星期三 11:41:23

尝试:

        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

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

new DateTime(DateTimeZone.UTC).toString()
于 2013-02-20T12:00:24.170 回答
0

您需要 2 个 DateFormatter,一个用于解析,一个用于输出。你有一个输出。

编辑:输出是这样的:

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 回答
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对象。你只需要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

于 2013-02-20T12:02:58.900 回答