在 XMLGregorianCalendar 中指定日期格式

2022-01-11 00:00:00 calendar java gregorian-calendar

我想使用 XMLGregorianCalendar 格式的日期发送到 Web 服务.Web 服务需要 yyyy-dd-mm 格式的信息.我使用下面的代码创建一个 XMLGregorianCalendar 并将其发送到 Web 服务.

I want to use a Date in XMLGregorianCalendar format for sending to a web service. The web service expects information in yyyy-dd-mm format. I use the below code to create an XMLGregorianCalendar and send it to web service.

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 的日期.时间也包含在输出中.是否可以只获取日期?你能帮帮我吗?

Unfortunately I always get the date as 1983-06-13T00:00:00.000-04:00. Time is also getting included in the output. Is it possible to get only the date? Could you please help me?

推荐答案

你不需要指定SimpleDateFormat",很简单:您必须在不想显示的地方指定常量DatatypeConstants.FIELD_UNDEFINED"

you don't need to specify a "SimpleDateFormat", it's simple: You must do specify the constant "DatatypeConstants.FIELD_UNDEFINED" where you don't want to show

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);

相关文章