📜  Golang 中的 time.Time.String()函数示例(1)

📅  最后修改于: 2023-12-03 15:31:01.661000             🧑  作者: Mango

Golang 中的 time.Time.String()函数

在 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() 方法将其转化为本地时间。