gpt4 book ai didi

java - 将 XMLgregorianCalender 默认格式更改为 "yyyyMMdd"

转载 作者:行者123 更新时间:2023-12-01 09:00:28 31 4
gpt4 key购买 nike

需要助手,我需要将 XMLGregorianCalendar 的默认格式 (2017-01-18) 更改为“20170118”,我在这里尝试了很多示例,但没有帮助

private static SimpleDateFormat formats = new SimpleDateFormat("yyyyMMdd");

public static XMLGregorianCalendar unmarshal(String value) {
try {
return toXMLGregorianCalendar(formats.parse(value));
} catch ( ParseException e ) {
e.printStackTrace();
return null;
}
}

最佳答案

恐怕你做不到。如果你看一下类(class) XMLGregorianCalendar ,你会发现 toString()方法只需调用 toXMLFormat()toXMLFormat()不提供任何格式定制的可能性。

public String toXMLFormat() {

QName typekind = getXMLSchemaType();

String formatString = null;
// Fix 4971612: invalid SCCS macro substitution in data string
// no %{alpha}% to avoid SCCS macro substitution
if (typekind == DatatypeConstants.DATETIME) {
formatString = "%Y-%M-%DT%h:%m:%s" + "%z";
} else if (typekind == DatatypeConstants.DATE) {
formatString = "%Y-%M-%D" + "%z";
} else if (typekind == DatatypeConstants.TIME) {
formatString = "%h:%m:%s" + "%z";
} else if (typekind == DatatypeConstants.GMONTH) {
formatString = "--%M" + "%z";
} else if (typekind == DatatypeConstants.GDAY) {
formatString = "---%D" + "%z";
} else if (typekind == DatatypeConstants.GYEAR) {
formatString = "%Y" + "%z";
} else if (typekind == DatatypeConstants.GYEARMONTH) {
formatString = "%Y-%M" + "%z";
} else if (typekind == DatatypeConstants.GMONTHDAY) {
formatString = "--%M-%D" + "%z";
}
return format(formatString);
}

有任何解决方案吗?

好吧,如果你只想获取 yyyyMMdd 类型的字符串来自XMLGregorianCalendar对象,你可以这样做:

XMLGregorianCalendar c = YourCalendarHelper.unmarshal("2017-01-18");
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
String str = format.format(c.toGregorianCalendar().getTime());

System.out.println(str); // 20170118

顺便说一句,如果在转换过程中引发异常,请勿捕获它,除非您 100% 确定如何处理它。通过方法声明将其抛出,以便该方法的调用者意识到潜在的失败。

关于java - 将 XMLgregorianCalender 默认格式更改为 "yyyyMMdd",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41714925/

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