为什么 Go 的 Time.Parse 函数不解析时区标识符?
使用 Go 的 time.Parse 函数解析时间字符串时,时区标识符(例如“MST”)是根据“当前位置”设置进行解释的。如果当前位置无法识别缩写,则时间将记录为偏移量为零的虚构位置。
为了说明这一点,以下代码片段演示了该问题:
date := "2018 08 01 12:00 EDT" tn, _ := time.Parse(format, date) fmt.Println(tn) // Print +0000 despite EDT indicating a -0400 offset
此代码使用 time.Parse 函数解析“2006 01 02 15:04 MST”格式的日期字符串,然后打印生成的 Time 对象。但是,它会打印“0000”而不是预期的“-0400”,因为该函数使用的当前位置无法识别“EDT”缩写。
要避免此问题,您可以使用替代方法进行解析时间字符串:
通过这些方法,您可以准确解析带有时区缩写的时间字符串,确保时区信息的正确解释。
以上是为什么 Go 的 `time.Parse` 会误解'EDT”等时区标识符?的详细内容。更多信息请关注PHP中文网其他相关文章!