我有兩個時間實體。have我從資料庫和Now()時間中獲取。一旦我想用 比較它們After,結果就不是我所期望的。實體如下:
// have => 2022-01-09 09:09:59 0000 0000
// now => 2022-01-09 11:57:08.990265878 0300 0300 m= 4.977355713
if now.After(have) {
// ...
}
我期望true上述條件的結果,而它回傳false。為了更好地解決這個問題,我將它們轉換為 Unix 時間,Unix()令人驚訝的是,它的值have略大于now,這就是條件回傳的原因false。
顯然now是 afterhave但它的 Unix 時間小于have. 由于我想知道此案,請您告訴我我錯在哪里?
更新 問題與時區有關。我沒有注意到它。所以我添加了以下代碼:
loc, _ := time.LoadLocation("Local")
have = have.In(loc)
然后一旦我列印出來,它是這樣的:
have => 2022-01-09 12:09:59 0300 0300
這就是條件回傳錯誤的原因。
uj5u.com熱心網友回復:
這兩個時間位于不同的時區:have在 UTC 中,now在 0300. 因此,now在將其與其他時間進行比較之前,您必須從值的日期/時間部分中減去 3 小時。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/407072.html
標籤:
上一篇:如何獲取DelphiProjectsMRUList?
下一篇:在golang中決議結構化資料
