今天查詢 MongoDB 帶時間條件遇到一個怪問題,
時間條件設定為 2018-12-24T16:00:00Z
但進資料庫查詢時,總是被改成 ISODate("2018-12-24T08:00:00Z")
經一番查詢後,發現 MongoDB driver 在查詢時,
會自動依執行環境的 Time Zone 改成 UTC 時間,
所以才會發生這個怪現象
2018-12-24T16:00:00Z → time zone (utc+8) → 2018-12-24T08:00:00Z
那該如何解決呢?
var queryDate = new DateTime(2018, 12, 24, 0, 0, 0, DateTimeKind.Utc);
在建立DateTime 時,帶入 DateTimeKind.Utc ,
即告訴 driver 時間已經是 UTC 時間,
所以不用再幫我轉囉!!
reference: https://stackoverflow.com/questions/19350348/mongodb-c-sharp-driver-and-isodate
即告訴 driver 時間已經是 UTC 時間,
所以不用再幫我轉囉!!
沒有留言:
張貼留言