我有一个表示时区的字符串,但我需要验证它。例如:
timeZone := "ABC-3"在戈朗有什么方法来验证它吗?还是外部图书馆?
发布于 2020-11-27 20:56:38
如果您指的是缩写或代码,如GMT、CET、PST、UTC-7、GMT+3,则Go本机不支持使用这些缩写和代码加载位置。
您可以使用time.LoadLocation函数尝试加载不同的位置,但是您需要使用IANA时区数据库中定义的时区的名称。有几个例子:
UTC -用于加载UTC时区位置Local -表示系统的本地时区America/Chicago,Europe/Sarajevo,Asia/Shanghai,Africa/Accra等-用于加载相应的时区如果向time.LoadLocation函数提供无效的时区,您将得到一个错误。
timeLoc, err := time.LoadLocation("ABC-3")
if err != nil {
fmt.Println(err)
}输出:
unknown time zone ABC-3若要获得所有有效时区的列表,请检查这答案。
如果出于某种原因,您确实需要在代码中使用像UTC-7这样的缩写,您可以始终创建自己的位置,并在代码中使用它。示例:
loc := time.FixedZone("UTC-7", -7*60*60)您可以找到更多的细节这里。
有些包(如去时区 )可以帮助您从时区代码(如CET、PST、GMT等)中提取时区位置信息。在我看来,在使用时区代码时要注意以下几点:
BST )可能返回ErrAmbiguousTzAbbreviations错误,这意味着使用相同的时区代码存在多个时区。https://stackoverflow.com/questions/65042464
复制相似问题