在 XMLGregorianCalendar 中指定日期格式

2022-09-01 19:53:20

我想使用日期格式发送到 Web 服务。Web 服务需要格式的信息。我使用以下代码创建一个并将其发送到Web服务。XMLGregorianCalendaryyyy-dd-mmXMLGregorianCalendar

Date dob = null;
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");

try {
    XMLGregorianCalendar date2;
    dob = df.parse("13/06/1983");

    GregorianCalendar c = new GregorianCalendar();
    c.setTimeInMillis(dob.getTime());
    date2 = DatatypeFactory.newInstance().newXMLGregorianCalendar(c);
    System.out.println(date2);
}
catch(DatatypeConfigurationException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
catch(ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

不幸的是,我总是得到日期为.时间也包含在输出中。是否可以只获取日期?你能帮帮我吗?1983-06-13T00:00:00.000-04:00


答案 1

你不需要指定“SimpleDateFormat”,这很简单:你必须指定你不想显示的常量“DatatypeConstants.FIELD_UNDEFINED”

GregorianCalendar cal = new GregorianCalendar();
cal.setTime(new Date());
XMLGregorianCalendar xmlDate = DatatypeFactory.newInstance().newXMLGregorianCalendarDate(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH)+1, cal.get(Calendar.DAY_OF_MONTH), DatatypeConstants.FIELD_UNDEFINED);

答案 2

是的,知道了...

Date dob=null;
DateFormat df=new SimpleDateFormat("dd/MM/yyyy");
dob=df.parse( "13/06/1983" );
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(dob);
XMLGregorianCalendar xmlDate = DatatypeFactory.newInstance().newXMLGregorianCalendarDate(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH)+1, cal.get(Calendar.DAY_OF_MONTH), DatatypeConstants.FIELD_UNDEFINED);

这将以正确的格式提供它。


推荐