我像这样获取用户的时间戳
2015-05-28T17:00:00
和时区"America/Los_Angeles"
现在我想把日期转换成
2015-05-28T17:00:00-07:00
这是可能的吗,请帮助我在这方面,如果你有任何链接,你可以分享
您可以使用ParseInLocation
来解析特定位置的datetime
package main
import (
"fmt"
"time"
)
func main() {
loc, err := time.LoadLocation("America/Los_Angeles")
if err != nil {
panic(err)
}
// Note: without explicit zone, returns time in given location.
const shortForm = "2015-05-28T17:00:00"
t, err := time.ParseInLocation("2006-01-02T15:04:05", shortForm, loc)
if err != nil {
panic(err)
}
fmt.Println(t)
}
输出为:
2015-05-28 17:00:00 -0700 PDT
时区"在围棋中转化为time.Location
。按名称加载位置:
loc, err := time.LoadLocation("America/Los_Angeles")
解析:
将字符串解释为"那个位置的时间戳":
t, err := time.ParseInLocation("2006-01-02T15:04:05", input, loc)
将字符串解释为UTC";时间戳:
t, err := time.Parse("2006-01-02T15:04:05", input)
格式化:
根据RFC3339来格式化t:
fmt.Println(t.Format(time.RFC3339))
t
自带时间。位置,您还可以将时间戳转换为您认为合适的时区:
fmt.Println(t.In(loc).Format(time.RFC3339))
fmt.Println(t.UTC().Format(time.RFC3339))
https://go.dev/play/p/g2BgfdYGxU_I