当toGregorianCalendar()。getTime()被调用时,格里高利历返回前一天的日期

时间:2013-10-03 13:32:22

标签: java

以下是一段代码:

customerDetailsType.getDateOfBirth().toGregorianCalendar().getTime()

当我在eclipse调试模式中检查customer.getDateOfBirth()的值时,它会显示当前日期。

当我检查customerDetailsType.getDateOfBirth().toGregorianCalendar().getTime()的值时,它会显示我前一天的日期。

customer.getDateOfBirth()的返回值的类型为: XMLGregorianCalendar 。 我正在调用webservice并将Date对象作为dateOfBirth传递给服务器。 上面的代码在服务器上。

dateOfBirth的定义如下:

@XmlSchemaType(name = "date")

protected XMLGregorianCalendar dateOfBirth;

1 个答案:

答案 0 :(得分:1)

这可能是一个时区问题。 GregorianCalendar具有亚秒级粒度。调试代码以查看getDateOfBirth()方法的时间(小时,分钟,秒)和时区组件。它可能会转换为当地时间或UTC正在改变日期。由于您的应用程序可能不关心某人出生日期的小时,分​​钟,秒(并且没有显示它),因此显示的日期可能只是提前一天。