睏倦的時候寫了個個獲取本地時間,列印總比當前時間大8小時,找了很久原因 package main import ( "fmt" "time" ) func main() { now := time.Now() fmt.Println(now) fmt.Println("nowStr:", now.F ...
睏倦的時候寫了個個獲取本地時間,列印總比當前時間大8小時,找了很久原因
package main import ( "fmt" "time" ) func main() { now := time.Now() fmt.Println(now) fmt.Println("nowStr:", now.Format("2006-01-02 13:04:05")) }
輸出
2023-02-23 15:40:49.9662692 +0800 CST m=+0.003123801 nowStr: 2023-02-23 23:40:49
發現是東八區時間,但是格式化列印結果就大了8小時
根因:小時格式化字元串,小時占位符應該是15,不是13,寫成13 自動被解讀成1和3,1=01為月份,當時是2月份解讀成2,3不屬於占位符作為字元串直接輸出,所以如上測試正好看上去是多了8小時,實際上只是小時位裡面寫了個月份+字元“3”.... 坑死我了,還以為是時區哪裡搞錯了.....啊啊啊啊啊啊啊啊啊啊
備註:標準占位符年:2006, 月:01, 日:02, 時:15,分:04, 秒:05.
證實如上猜測:
fmt.Println("nowStr:", now.Format("2006-01-02 14:04:05"))
輸出nowStr: 2023-02-23 249:49:10 其中2為月份,49為分鐘。。。。。。。。。。
阿彌陀佛!!!!!!!!