0

以下はコードの一部です:

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

Eclipse デバッグ モードで値を調べると、customer.getDateOfBirth()現在の日付が表示されます。

の値を調べると、customerDetailsType.getDateOfBirth().toGregorianCalendar().getTime()前日の日付が表示されます。

の戻り値のcustomer.getDateOfBirth()型はXMLGregorianCalendarです。Web サービスを呼び出して、Date オブジェクトを dateOfBirth としてサーバーに渡しています。上記のコードはサーバー上にあります。

dateOfBirth の定義は次のようになります。

@XmlSchemaType(name = "date")

protected XMLGregorianCalendar dateOfBirth;
4

1 に答える 1

1

タイムゾーンの問題かもしれません。GregorianCalendarサブ秒の粒度があります。コードをデバッグして、メソッドの時間 (時、分、秒) とタイムゾーン コンポーネントを確認しますgetDateOfBirth()。日付をシフトしている現地時間または UTC に変換している可能性があります。あなたのアプリケーションはおそらく誰かの生年月日の時間、分、秒を気にしない (そしてそれを表示しない) ため、表示される日付は 1 日早いだけかもしれません。

于 2013-10-03T13:38:01.247 に答える