以下是一段代码:
customerDetailsType.getDateOfBirth().toGregorianCalendar().getTime()
当我在eclipse调试模式中检查customer.getDateOfBirth()
的值时,它会显示当前日期。
当我检查customerDetailsType.getDateOfBirth().toGregorianCalendar().getTime()
的值时,它会显示我前一天的日期。
customer.getDateOfBirth()
的返回值的类型为: XMLGregorianCalendar 。
我正在调用webservice并将Date对象作为dateOfBirth传递给服务器。
上面的代码在服务器上。
dateOfBirth的定义如下:
@XmlSchemaType(name = "date")
protected XMLGregorianCalendar dateOfBirth;
答案 0 :(得分:1)
这可能是一个时区问题。 GregorianCalendar
具有亚秒级粒度。调试代码以查看getDateOfBirth()
方法的时间(小时,分钟,秒)和时区组件。它可能会转换为当地时间或UTC正在改变日期。由于您的应用程序可能不关心某人出生日期的小时,分钟,秒(并且没有显示它),因此显示的日期可能只是提前一天。