Java 日期格式:字符串到 XMLGregorianCalendar

问题描述

我有一个字符串日期,我要转换为 XMLGregorianCalendar。下面的代码转换它没有错误。但是,我将日期传递给的系统,得到了下面报告的错误。

以下 XMLGregorianCalendar 有效:

enter image description here

以下 XMLGregorianCalendar 不起作用(下面的代码将其转换为此):

enter image description here

问题

如何将字符串转换为所需的格式?

 public static void main(String []args){
    try {
        String commenceTOString = "2021-06-30 05:00:00";
        java.util.Date dateCommence = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(commenceTOString);
        System.out.println(dateCommence);
        java.util.GregorianCalendar c = new java.util.GregorianCalendar();
        c.setTime(dateCommence);
        
        javax.xml.datatype.XMLGregorianCalendar commence = javax.xml.datatype.DatatypeFactory.newInstance().newXMLGregorianCalendar(c);
        System.out.println(commence);

    } catch (Exception e) {
        e.printStackTrace();
    }
 }

错误

E:消息验证失败。错误:[cvc-pattern-valid:值 '2021-06-30T06:30:00.000+02:00' 不是方面有效的 图案 '((((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-9]))) |(((((0[13578]))|(1[02]))-31)|((((0[1,3-9])|(1[0-2]))-30)))| (((19|20)(([02468][048])|([13579][26]))-02-29))|(((20[0-9][0-9])|(19) [0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d) |(2[0-8])))|((((0[13578])|(1[02]))-31)|((((0[1,3-9])|(1[0]) -2]))-(29|30)))))T([0-1][0-9]|[2][0-3])(:([0-5][0-9] )){1,2}' 对于类型 'dateTime'.cvc-attribute.3:值 '2021-06-30T06:30:00.000+02:00' 属性 'DepartureDateTime' on 元素“FlightSegment”在其类型方面无效, '约会时间'。]。 http://www.elleipsis.com/booking/exception/35a8ac87-6743-4719-9504-a8a17a1a0471

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)