如何使用特定时区解析时间

How to parse time using a specific timezone

我要从字符串中获取时间结构。我在布局 "2006-01-02 15:04".

中使用函数 time.ParseTime()

当我使用任何有效的时间字符串执行该函数时,我得到一个指向该时间戳的时间结构,但它是 UTC。

如何更改为不同的时区?明确地说,我想要相同的时间戳,但时区不同。我不想在时区之间转换;我只想获得相同的时间对象,但不是 UTC。

在未指定时区时使用 time.ParseInLocation to parse time in a given Locationtime.Local 是您当地的时区,将其作为您的位置传入。

package main

import (
    "fmt"
    "time"
)

func main() {
    // This will honor the given time zone.
    // 2012-07-09 05:02:00 +0000 CEST
    const formWithZone = "Jan 2, 2006 at 3:04pm (MST)"
    t, _ := time.ParseInLocation(formWithZone, "Jul 9, 2012 at 5:02am (CEST)", time.Local)
    fmt.Println(t)

    // Lacking a time zone, it will use your local time zone.
    // Mine is PDT: 2012-07-09 05:02:00 -0700 PDT
    const formWithoutZone = "Jan 2, 2006 at 3:04pm"
    t, _ = time.ParseInLocation(formWithoutZone, "Jul 9, 2012 at 5:02am", time.Local)
    fmt.Println(t)
}