Go 中的日期解析
尝试解析格式为“2011-01-19 22:15”的时间戳,即tar 常用的函数,开发人员在使用 time.Parse 函数时可能会遇到困难。本文旨在提供此问题的解决方案。
以下代码片段演示了使用 time 解析时间戳的失败尝试。解析:
package main import ( "fmt" "time" ) func main() { var time, error = time.Parse("2011-01-19 22:15", "2011-01-19 22:15") if error != nil { fmt.Println(error.String()) return } fmt.Println(time) }
此代码失败并显示错误消息“'解析时间“2011-01-19 22:15”:月份超出范围'”。
解决方案在于理解time.Parse的语法和语义。正如 Go time 包文档中所指定的, time.Parse 中使用的默认布局基于标准 Unix 时间格式:
“Mon Jan 2 15:04:05 MST 2006 (MST is GMT-0700) “
地点:
要定义自定义布局,开发人员需要确定标准时间如何以其所需的格式显示。例如,要解析“2011-01-19 22:15”时间戳,可以使用以下代码段:
package main import ( "fmt" "time" ) func main() { t, err := time.Parse("2006-01-02 15:04", "2011-01-19 22:15") if err != nil { fmt.Println(err) return } fmt.Println(time.SecondsToUTC(t.Seconds())) }
这里,我们指定了一个自定义布局字符串“2006-01-02 15” :04" 以匹配输入时间戳。然后结果以 Unix 时间格式打印。
以上是如何在 Go 的 time.Parse 函数中正确解析时间戳?的详细内容。更多信息请关注PHP中文网其他相关文章!