java - 如何只获得类型为 XMLGregorianCalendar 的年份

标签 java spring xmlgregoriancalendar

我有一个 XML Jaxb 类来设置 XMLGregorianCalendar 类型。但是我们应该在这个属性中只设置年份。

XMLGregorianCalendar xmlCal = DatatypeFactory.newInstance().newXMLGregorianCalendar(new 
GregorianCalendar());
xmlCal.setYear(2021);
xmlObject.setBuiltYear(xmlCal); 
// xmlCal.getYear() will give me year but its type int , so setter method not accepting it. If 
has to be of type XMLGregorianCalendar  only with year.

如果我像上面那样设置它,它给出 2021-09-23T10:19:38.346-04:00 但我只需要类型为 XMLGregorianCalendar 的年份。我们如何做到这一点?

最佳答案

使用XMLGregorianCalendar#clear在设置年份之前。

演示:

import java.util.GregorianCalendar;

import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;

public class Main {
    public static void main(String[] args) throws DatatypeConfigurationException {
        XMLGregorianCalendar xmlCal = DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar());
        xmlCal.clear();
        xmlCal.setYear(2021);
        System.out.println(xmlCal);
    }
}

输出:

2021

ONLINE DEMO

关于java - 如何只获得类型为 XMLGregorianCalendar 的年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69301998/

相关文章:

java - 如何从 eclipse 调用两个或多个 ant 目标?

java - 当类具有有界类型参数时使用有界通配符

java - 在 vaadin 10 spring boot 应用程序中放置样式表的位置

java - 如何在 XMLGregorianCalendar 中设置带有区域的时间戳

java - 将 XMLGregorianCalendar 转换为 LocalDateTime 时出现时区不一致

java.util.Date 到 XMLGregorianCalendar

java - Mosquitto java 代理显示错误 : Exception in thread "main" java. lang.RuntimeException:无法找到资源 "config/moquette.conf"

java - Spring aop 资源

java - 使用@DirtiesContext BEFORE_CLASS 进行 Spring 启动测试

java - com.fasterxml.jackson.databind.exc.InvalidDefinitionException : No value type configured for ObjectReader