📅  最后修改于: 2023-12-03 15:31:01.661000             🧑  作者: Mango
在 Golang 中,时间日期是一个十分重要的类型,对于时间日期类型的处理也十分重要。time.Time 是 Golang 中用来表示时间日期的类型。
time.Time 的 String() 方法返回一个字符串表示当前时间,其返回值遵循 RFC3339 格式,即:“2006-01-02T15:04:05Z07:00”。下面是一个示例代码:
package main
import (
"fmt"
"time"
)
func main() {
currentTime := time.Now()
fmt.Println(currentTime.String())
}
输出:
2022-01-12 08:36:49.900987 +0800 CST m=+0.000392580
在上述示例代码中,我们首先使用 time.Now() 获取当前时间,然后调用其 String() 方法将其转化为 RFC3339 格式的字符串并打印出来。
除了使用 time.Now() 获取当前时间以外,我们还可以使用 time.Parse() 把一个字符串表示的时间解析为 time.Time 类型,然后调用其 String() 方法将其格式化为 RFC3339 格式的字符串。
下面是一个示例代码:
package main
import (
"fmt"
"time"
)
func main() {
timeString := "2022-01-12 08:36:49.900987 +0800 CST m=+0.000392580"
parsedTime, err := time.Parse("2006-01-02 15:04:05.999999 -0700 MST m=+0.000000000", timeString)
if err != nil {
fmt.Println("Parse time error:", err)
return
}
fmt.Println(parsedTime.String())
}
输出:
2022-01-12T08:36:49.900987+08:00
在上述示例代码中,我们首先定义了一个 timeString 变量用于保存一个字符串表示的时间。然后使用 time.Parse() 将其解析为 time.Time 类型并存储在 parsedTime 变量中。最后调用 parsedTime 变量的 String() 方法就能够获取到 RFC3339 格式的时间字符串了。
需要注意的是,当使用 time.Parse() 解析时间字符串时,需要使用对应格式的字符串作为第一个参数来解析。我们可以通过如下方式来获取对应格式的字符串:
time.Now().Format("2006-01-02 15:04:05.999999 -0700 MST m=+0.000000000")
同时需要注意的是,time.Time.String() 方法返回的字符串是 UTC 时间而非本地时间。如果需要使用本地时间,可以使用 time.Time.Local() 方法将其转化为本地时间。