首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何验证时区?

如何验证时区?
EN

Stack Overflow用户
提问于 2020-11-27 18:52:35
回答 1查看 781关注 0票数 0

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

代码语言:javascript
复制
timeZone := "ABC-3"

在戈朗有什么方法来验证它吗?还是外部图书馆?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-27 20:56:38

如果您指的是缩写或代码,如GMTCETPSTUTC-7GMT+3,则Go本机不支持使用这些缩写和代码加载位置。

您可以使用time.LoadLocation函数尝试加载不同的位置,但是您需要使用IANA时区数据库中定义的时区的名称。有几个例子:

  • UTC -用于加载UTC时区位置
  • Local -表示系统的本地时区
  • America/ChicagoEurope/SarajevoAsia/ShanghaiAfrica/Accra等-用于加载相应的时区

如果向time.LoadLocation函数提供无效的时区,您将得到一个错误。

代码语言:javascript
复制
timeLoc, err := time.LoadLocation("ABC-3")
if err != nil {
  fmt.Println(err)
}

输出:

代码语言:javascript
复制
unknown time zone ABC-3

若要获得所有有效时区的列表,请检查答案。

如果出于某种原因,您确实需要在代码中使用像UTC-7这样的缩写,您可以始终创建自己的位置,并在代码中使用它。示例:

代码语言:javascript
复制
loc := time.FixedZone("UTC-7", -7*60*60)

您可以找到更多的细节这里

有些包(如去时区 )可以帮助您从时区代码(如CETPSTGMT等)中提取时区位置信息。在我看来,在使用时区代码时要注意以下几点:

  • 一些时区代码(如BST )可能返回ErrAmbiguousTzAbbreviations错误,这意味着使用相同的时区代码存在多个时区。
  • 有关时区代码和时区位置的关系信息由包的贡献者和维护人员维护和更新(硬编码)。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65042464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档