日期到XMLGregorianCalendar分隔符逗号而不是点

时间:2016-03-15 20:26:29

标签: java xml date converter

我有以下问题:

我已将java.util.Date转换为XMLGregorianCalendar,输出格式如下:

2016-03-15T20:43:45.776+01:00

相反,我需要:

2015-10-31T14:35:01,905+01:00

那么有关如何以程序方式将.更改为,的任何建议? 字符串替换不是一个选项,因为我需要进一步传递XMLGregorianCalendar对象。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

ISO-8601 - 论文作出以下声明:

  

4.2.2.4带小数的表示

     

[...]如果包含小数部分,则低阶时间元素(如果有)   应省略,小数部分应除以   ISO 31-0中指定的小数符号的整数部分,即逗号   [,]或句号[。]。其中,逗号是首选标志。[...]

XML-Schema 表示(作为偏差)在其内置时间相关类型的任何词汇表示中只允许使用点(例如:xs:datetime或{{3} })。并且Java类XMLGregorianCalendar仅对内置类型进行建模,因此不允许逗号作为十进制符号。此语句还受方法DatatypeFactory.newXMLGregorianCalendar(String lexicalRepresentation)的{​​{3}}支持,该方法指向XML-Schema 1.0中的适当位置。

因此,如果您的Web服务需要逗号(但它也应该能够根据ISO-8601处理点),那么您不能使用XMLGregorianCalendar但必须使用自己的解决方案,并且可能使用XML中的自定义用户类型。 我个人认为这个点应该是可能的。