0

以下是一段代码:

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

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

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

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

dateOfBirth 的定义如下:

@XmlSchemaType(name = "date")

protected XMLGregorianCalendar dateOfBirth;
4

1 回答 1

1

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

于 2013-10-03T13:38:01.247 回答