我在日期比較時遇到問題。代碼:func inTimeSpan(start, end, check time.Time) bool { return check.After(start) && check.Before(end)}func checkTime(date string) { //Note that the date passed here is from SQL Server date1 := time.Now() date2, err := time.Parse("2006-01-02 15:04:05", date) if err != nil { log.Print(err) return } date3 := now.Add(1 * time.Hour) // 1 hour later than now log.Print("Date1 : ", date1.Format("2006-01-02 15:04:05")) log.Print("Date2 : ", date2.Format("2006-01-02 15:04:05")) log.Print("Date3 : ", date3.Format("2006-01-02 15:04:05")) if inTimeSpan(date1, date3, date2) { log.Print("Date2 is in the range between date1 and date3.") } else { log.Print("Date2 is not between date1 and date3.") } return}預期輸出:2019/12/15 19:31:02 Date1 : 2019-12-15 19:31:022019/12/15 19:31:02 Date2 : 2019-12-15 19:45:002019/12/15 19:31:02 Date3 : 2019-12-15 20:31:022019/12/15 19:31:02 Date2 is in the range between date1 and date3.實際輸出:2019/12/15 19:31:02 Date1 : 2019-12-15 19:31:022019/12/15 19:31:02 Date2 : 2019-12-15 19:45:002019/12/15 19:31:02 Date3 : 2019-12-15 20:31:022019/12/15 19:31:02 Date2 is not between date1 and date3.由于某種原因,日期比較按預期工作。有什么我想念的嗎?
1 回答

慕標5832272
TA貢獻1966條經驗 獲得超4個贊
阿德里安給出了答案:
可能希望將時區添加到您的調試打印語句中。我的猜測是那些時間并不都在同一個 TZ 中。– 阿德里安
SQL Server 將時區默認為 UTC,其余時間為+0200
. 我最終對 SQL Server 進行了一些大的更改,以設置所有日期+0200
以及在正確時區輸入的所有新日期。
- 1 回答
- 0 關注
- 152 瀏覽
添加回答
舉報
0/150
提交
取消