理解 Go 中的 time.Parse 行为
在 Go 中, time.Parse 方法用于将字符串转换为 time.Time 值。但是,时区转换可能会出现问题,从而导致意外结果。
要解决这些问题,定义正确的格式字符串至关重要。应处理 time.Parse 返回的错误,以深入了解转换过程。
更正的格式字符串
示例代码中提供的格式字符串,“2013 -05-13 18:41:34.848 -0700 PDT”是不正确的。为了遵守 Go 时间格式化语法,正确的格式应该是:
const longForm = "2006-01-02 15:04:05 -0700"
错误处理示例代码
通过处理 time.Parse 返回的错误,我们可以识别任何转换问题:
package main import ( "fmt" "log" "time" ) func main() { const longForm = "2006-01-02 15:04:05 -0700" t, err := time.Parse(longForm, "2013-05-13 18:41:34.848 -0700") if err != nil { log.Fatal(err) } fmt.Println(t) }
输出
使用更正的格式字符串和正确的错误处理,输出将是:
2013-05-13 01:41:34.848 +0000 UTC
此输出准确反映 UTC 时间,考虑格式字符串中指定的时区。通过理解 time.Parse 行为并遵循正确的语法,开发人员可以有效地将字符串转换为 Go 中的时间值。
以上是如何正确解析Go with Time Zones中的时间字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!