Arvind Kumar Avinash 的回答很好而且正确。还有其他方法可以获得相同的,所以作为补充,我提出了一对。
编辑:Arvind Kumar Avinash 的代码的更简单和更短的变体:
XMLGregorianCalendar xmlCal
= DatatypeFactory.newInstance().newXMLGregorianCalendar();
xmlCal.setYear(2021);
System.out.println(xmlCal);
输出:
2021
no-argnewXMLGregorianCalendar()
给了我们一个XMLGregorianCalendar
带有所有字段 undefined 或null
。设定年份,我们就完成了。
您也可以XMLGregorianCalendar
直接从工厂方法调用中创建所需的完全完成。这是一个较长的变体:
XMLGregorianCalendar xmlCal = DatatypeFactory.newInstance()
.newXMLGregorianCalendarDate(2021, DatatypeConstants.FIELD_UNDEFINED,
DatatypeConstants.FIELD_UNDEFINED, DatatypeConstants.FIELD_UNDEFINED);
结果和以前一样。我设置未定义的字段是月份、月份和 UTC 偏移量(称为时区,带有XMLGregorianCalendar
)。
一个更短的变体是:
XMLGregorianCalendar xmlCal
= DatatypeFactory.newInstance().newXMLGregorianCalendar("2021");
输出仍然是所需的:
2021
正如您想要一个XMLGregorianCalendar
用于生成特定字符串的目的一样,XMLGregorianCalendar
也可以从您想要的字符串构造。
如果您的年份在 中int
,您可以先转换:
int year = 2021;
XMLGregorianCalendar xmlCal = DatatypeFactory.newInstance()
.newXMLGregorianCalendar(String.valueOf(year));
int
将您的转换为 aString
只是为了再次解析它可能感觉像是一种浪费。你决定。
更喜欢哪种方式?这是一个品味问题。
java.time.年
顺便说一句,仅当您的课程需要 , 时才XMLGregorianCalendar
使用该课程。对于所有其他目的,我推荐该Year
课程:
Year year = Year.of(2021);
System.out.println(year);
2021