Go - 解析日期字符串
在 Golang 中将字符串解析为时间
在 Golang 中,解析字符串 涉及将字符串表示的日期转换为特定格式的 time.Time 对象。这允许您执行各种日期和时间操作,例如格式化、算术运算和比较。
使用 Parse 函数
在这里,我们可以使用 time 包 提供的 Parse 函数,我们不使用像大多数其他语言那样的代码来表示日期/时间字符串的组成部分。相反,Go 使用助记符 - 标准时间作为参考。
例如,参考时间可以是这样的 −
Mon Jan 2 14:10:05 MST 2020 (MST is GMT-0700)
或者也可以是这样的。
01/02 03:04:10PM '20 -0700
Parse() 函数的语法
Parse() 函数的语法如下所示。
func Parse(layout, value string) (Time, error)
Parse 函数接受 layout 和 value 作为参数,并返回 time 和 error。layout 用作参考,value 是我们想要解析的实际日期字符串。
示例 1:解析自定义日期时间格式
在这个示例中,我们根据 layout 'l' 将表示日期时间的字符串 'v' 解析为 'time.Time' 对象 'tt'。打印解析后的日期时间值。解析过程中发生的错误将被忽略。
package main
import (
"fmt"
"time"
)
func main() {
v := "Thu, 05/19/11, 10:47PM"
l := "Mon, 01/02/06, 03:04PM"
tt, _ := time.Parse(l, v)
fmt.Println(tt)
}
输出
如果我们使用命令 2014-11-12 11:45:26.371 +0000 UTC 运行上述代码,那么我们将得到以下输出。
2011-05-19 22:47:00 +0000 UTC
除了传递我们自己的 layout,我们还可以传递 Go time 包 提供的格式,它也会解析日期。
示例 2:解析 RFC3339 日期时间字符串
在这个示例中,我们将表示 RFC3339 格式日期时间的字符串 'str' 解析为 time.Time 对象 'tt'。如果解析过程中发生错误,则打印错误;否则,打印解析后的日期时间值。
package main
import (
"fmt"
"time"
)
func main() {
str := "2014-11-12T11:45:26.371Z"
tt, err := time.Parse(time.RFC3339, str)
if err != nil {
fmt.Println(err)
}
fmt.Println(tt)
}
输出
如果我们使用命令 go run main.go 运行上述代码,那么我们 将得到以下输出。
2014-11-12 11:45:26.371 +0000 UTC