登录
首页 >  Golang >  Go问答

如何在go中打印基于时间的时区的精确时间?

来源:stackoverflow

时间:2024-03-31 12:36:34 268浏览 收藏

大家好,我们又见面了啊~本文《如何在go中打印基于时间的时区的精确时间?》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

嗨,我这次想转换 2021-04-13 14:00:00 +0700 wib

2021-04-13 21:00:00

基本上我需要根据某个时区位置打印准确的时间,我不能使用此方法

time.ParseInLocation("02-Jan-2006 15:04:05", someTime.Format("02-Jan-2006 15:04:05"), location)

因为它将返回 yy-mm-dd- hh:mm:ss 偏移时区


正确答案


如果你仔细观察的话,在location中解析得到的时间就是在该location的时间。这不像 2021-04-13 14:00:00 +0700 wib2021-04-13 21:00:00 但事实上,时间是 2021-04-13 14:00:00 在您给定的位置。 +0700 仅显示偏移量,您不必使用偏移量更新时间。

func main() {
    now, _ := time.parse("02-01-2006 15:04:05 -0700", "07-05-2021 12:00:00 +0530")

    loc, _ := time.loadlocation("utc")
    fmt.printf("utc time:       %s\n", now.in(loc))

    loc, _ = time.loadlocation("europe/berlin")
    fmt.printf("berlin time:    %s\n", now.in(loc))

    loc, _ = time.loadlocation("america/new_york")
    fmt.printf("new york time:  %s\n", now.in(loc))

    loc, _ = time.loadlocation("asia/kolkata")
    fmt.printf("india time:     %s\n", now.in(loc))

    loc, _ = time.loadlocation("asia/singapore")
    fmt.printf("singapore time: %s\n", now.in(loc))
}

以上代码的输出为:

UTC Time:       2021-05-07 06:30:00 +0000 UTC
Berlin Time:    2021-05-07 08:30:00 +0200 CEST
New York Time:  2021-05-07 02:30:00 -0400 EDT
India Time:     2021-05-07 12:00:00 +0530 IST
Singapore Time: 2021-05-07 14:30:00 +0800 +08

每个地点的时间均指当地时间。偏移量仅显示与 gmt 的偏移量。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《如何在go中打印基于时间的时区的精确时间?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>