0
私のような書式設定のMongoDB内の既存のデータを持っている:私はmorphiaを使用してJava POJOにデシリアライズしようとすると、システムのタイムゾーンは日付を適用する代わりのようデシリアライズISODateオブジェクト
"created_at" : ISODate("2011-11-25T18:17:16Z")
、それは日付を与えますGMT日付。
/**
* The Class AggregationQueryDetails.
*/
public class AggregationQueryResultTriggeredPolicyDetails {
/** The triggered time. */
private Date created_at;
/** The event ids. */
private List<String> event_ids;
/**
* @return the CreatedAt
*/
public Date getCreatedAt() {
return created_at;
}
/**
* @param CreatedAt
* the CreatedAt to set
*/
public void setCreatedAt(Date createdAt) {
this.created_at = createdAt;
}
}
タイムゾーン変換を避けるにはどうすればよいですか?
あなたは、関連するコードとあなたのPOJOクラスを追加することはできますか?あなたのjavaとmorphiaのバージョンは何ですか?あなたのローカルタイムゾーンの日付はどうやって確認しましたか? – Veeram
pojoクラスが追加されました。 getCreatedAtメソッドは、実際の時刻ではなくローカル時刻の値に変換します。これは、私のコードをデバッグする際に観察されます。 –
これは、答えに記載されているように期待される動作です。 Dateに保存される内部時間値はUTC値です。だからあなたは大丈夫でしょう。 Java 8を使用している場合は、java.time.Instantを使用する必要があります。 – Veeram