登录
首页 >  Golang >  Go问答

如何验证时区?

来源:stackoverflow

时间:2024-04-11 08:42:34 412浏览 收藏

本篇文章向大家介绍《如何验证时区?》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

我有一个代表时区的字符串,但我需要验证它。例如:

timeZone := "ABC-3"

golang中有没有方法可以验证它?或者一些外部库?


解决方案


如果您引用的是缩写或代码,例如 gmtcetpstutc-7gmt+3,go 本身不支持使用这些缩写和代码加载位置。

您可以使用 time.loadlocation 函数尝试加载不同的位置,但您需要使用 IANA Time Zone Database 中定义的时区名称。几个示例:

  • utc - 用于加载 utc 时区位置
  • local - 表示系统的本地时区

如果您向 time.loadlocation 函数提供无效时区,则会收到错误消息。

timeloc, err := time.loadlocation("abc-3")
if err != nil {
  fmt.println(err)
}

输出:

unknown time zone abc-3

要获取所有有效时区的列表,请查看 this 答案。


如果出于某种原因您确实需要在代码中使用 utc-7 等缩写,您可以随时创建自己的位置并在整个代码中使用它。示例:

loc := time.FixedZone("UTC-7", -7*60*60)

您可以找到更多详细信息here


有一些软件包,例如 go-timezone,可以帮助您从时区代码中提取时区位置信息,例如 cetpstgmt 等。在我看来,使用它时需要注意以下几点:

  • 某些时区代码(例如 bst)可能会返回 errambigouslytzabbreviations 错误,这意味着有多个时区使用相同的时区代码。
  • 时区代码和时区位置的关系信息由软件包的贡献者和维护者维护和更新(硬编码)。

今天关于《如何验证时区?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

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