Go 怎么解析日期字符串?

文章导读
Previous Quiz Next 在 Golang 中将字符串解析为时间 在 Golang 中,解析字符串 涉及将字符串表示的日期转换为特定格式的 time.Time 对象。这允许您执行各种日期和时间操作,例如格式化、算术运算和比较。
📋 目录
  1. 在 Golang 中将字符串解析为时间
  2. 使用 Parse 函数
  3. Parse() 函数的语法
  4. 示例 1:解析自定义日期时间格式
  5. 示例 2:解析 RFC3339 日期时间字符串
A A

Go - 解析日期字符串



Previous
Quiz
Next

在 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 作为参数,并返回 timeerrorlayout 用作参考,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