为了账号安全,请及时绑定邮箱和手机立即绑定

如何直接用时区解析日期和时间

如何直接用时区解析日期和时间

Go
哈士奇WWW 2023-08-21 14:36:42
我有这些代码:package mainimport (    "fmt"    "time")func main() {    tzJakarta, _ := time.LoadLocation("Asia/Jakarta")    stringTime := fmt.Sprintf("05-05-2019 05:11 %s", tzJakarta)     parsedTime, _ := time.Parse("02-01-2006 15:04 MST", stringTime)    fmt.Println(tzJakarta)    fmt.Println(stringTime)    fmt.Println(parsedTime)}输出是:Asia/Jakarta05-05-2019 05:11 Asia/Jakarta0001-01-01 00:00:00 +0000 UTC我期望的是这样的:Asia/Jakarta05-05-2019 05:11 Asia/Jakarta0001-01-01 00:00:00 +0700 UTC我怎样才能实现这个目标?这对于 Go 来说可能吗?
查看完整描述

1 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

你永远不会有0001-01-01 00:00:00 +0700 UTC,因为你忽略了错误,0001-01-01 00:00:00 +0000 UTC是一个零值。最后一条语句返回有关解析的错误,这是正确的版本。


package main


import (

    "fmt"

    "time"

)


func main() {

    loc, _ := time.LoadLocation("Asia/Jakarta")


    // Note: without explicit zone, returns time in given location.

    const shortForm = "02-01-2006 15:04"

    t, _ := time.ParseInLocation(shortForm, "05-05-2019 05:11", loc)

    fmt.Println(t)


}

输出:


2019-05-05 05:11:00 +0700 WIB 

(WIB – 印度尼西亚西部时间)

查看完整回答
反对 回复 2023-08-21
  • 1 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信