解析特定时区的时间
您可以使用 time.ParseTime() 从字符串中获取时间结构。它采用布局字符串作为参数,指定输入字符串的格式。布局字符串必须与输入字符串的格式完全匹配。
如果需要解析包含时区的时间字符串,可以使用 time.ParseInLocation()。该函数采用布局字符串和位置作为参数。该位置可以是 time.Location 值或表示时区名称的字符串。
例如,以下代码解析包含时区的时间字符串:
import (
"fmt"
"time"
)
func main() {
const layout = "2006-01-02 15:04"
const timeStr = "2012-07-09 05:02:00 0000 CEST"
t, err := time.ParseInLocation(layout, timeStr, time.Local)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(t)
}
此代码将打印以下输出:
2012-07-09 05:02:00 0000 CEST
time.ParseInLocation() 函数将解析时间根据布局字符串和指定位置的字符串。在本例中,布局字符串为“2006-01-02 15:04”,位置为“CEST”。 time.ParseInLocation() 函数将返回一个表示解析时间的 time.Time 值。
如果未指定位置,time.ParseInLocation() 函数将使用本地时区。这意味着解析的时间将转换为本地时区。
您可以通过创建时间来避免这种情况。具有正确时间和时区的时间值:
import (
"fmt"
"time"
)
func main() {
const layout = "2006-01-02 15:04"
const timeStr = "2012-07-09 05:02:00"
const timeZone = "CEST"
pz, err := time.LoadLocation(timeZone)
if err != nil {
fmt.Println(err)
return
}
t, err := time.Parse(layout, timeStr)
if err != nil {
fmt.Println(err)
return
}
T := t.In(pz)
fmt.Println(T)
}
此代码将打印以下输出:
2012-07-09 05:02:00 0200 CEST
此代码的输出显示正确的时间时区。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3