将 iCalendar DateTime 转换为 Java 日期对象

Convert iCalendar DateTime to Java Date object

我有 UTC 格式的 iCalendar 日期时间值 20160217T121209Z。有人能告诉我如何解析并将其转换为 Java Date 对象,该对象也包含时间值吗?

更新:我的最终值,当我打印日期时必须是这样的:

2 月 17 日星期三12:12:092016 年欧洲中部时间

请不要忘记将尾随 Z 解释为 UTC+00:00,这是 ISO-8601 标准。

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
java.util.Date d = sdf.parse("20151217T174218Z");
System.out.println(d); // output in your system timezone using toString()

如果您使用的是 Java-7 或更高版本,您还可以使用模式 "yyyyMMdd'T'HHmmssX" 并省略设置 UTC 参考的第二行。

这是将 iCalendar DateTime 转换为 Java 日期对象的方法。 假设 icalendar 日期为 20151217T174218Z.

        String icalvalue = "20151217T174218Z";
        SimpleDateFormat dateFormat = new SimpleDateFormat(
                "yyyyMMdd'T'HHmmss'Z'");
        dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
        Date date = null;
        try {
            date = dateFormat.parse(icalvalue);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        System.out.println(date);