有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

将iCalendar DateTime转换为Java日期对象

我有UTC格式的iCalendar日期时间值20160217T121209Z。有人能告诉我如何将它解析并转换为同样包含时间值的Java日期对象吗

更新:打印日期时,我的最终值必须如下所示:

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


共 (2) 个答案

  1. # 1 楼答案

    请不要忘记将尾部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'hhmmsx”,并省略设置UTC参考的第二行

  2. # 2 楼答案

    这就是如何将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);