gpt4 book ai didi

java - 无法格式化为 XMLGregorianCalendar

转载 作者:行者123 更新时间:2023-11-30 03:08:42 25 4
gpt4 key购买 nike

我从字符串日期转换为 XMLGregorianCalendar

public static void convertStringToXMLDate(String dateString) {
Date dob=null;
DateFormat df=new SimpleDateFormat("yyyyMMdd");
try {
dob=df.parse( "20140210" );
} catch (ParseException e) {
e.printStackTrace();
}
GregorianCalendar cal = new GregorianCalendar();

cal.setTime(dob);
XMLGregorianCalendar xmlDate3;
try {
xmlDate3 = DatatypeFactory.newInstance().newXMLGregorianCalendar(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH)+1, cal.get(Calendar.DAY_OF_MONTH),dob.getHours(),dob.getMinutes(),dob.getSeconds(),DatatypeConstants.FIELD_UNDEFINED, DatatypeConstants.FIELD_UNDEFINED);
System.out.println(xmlDate3);
} catch (DatatypeConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

此代码打印 xmlDate3 = 2014-02-10T00:00:00。

如何在 XMLGregorianCalendar 中将其格式化为 20140210 或 2014/02/10

最佳答案

你不能。 XMLGregorianCalendar是一个(来自 javadoc):

Representation for W3C XML Schema 1.0 date/time datatypes [...] normatively defined in W3C XML Schema 1.0 Part 2, Section 3.2.7-14.

如您所见,dateTime 引用的规范定义是:

3.2.7.1 Lexical representation

The ·lexical space· of dateTime consists of finite-length sequences of characters of the form: '-'? yyyy '-' mm '-' dd 'T' hh ':' mm ':' ss ('.' s+)? (zzzzzz)?

格式中唯一可能的选择是在“词汇表示”和“规范表示”之间。您显示的格式(201402102014/02/10)对于 XML 架构定义的 dateTime 值无效。

<小时/>

现在,如果您实际上想要一个 XML date 值,而不是 dateTime,那么您应该调用 newXMLGregorianCalendarDate(int year, int month, int day, int timezone)而不是newXMLGregorianCalendar(int year, int month, int day, int hour, int minute, int second, int millisecond, int timezone) .

输出将是:

2014-02-10

关于java - 无法格式化为 XMLGregorianCalendar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34125097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com