Go 如何验证时区
我需要验证已经给出的时区值,我也想用特定的日期格式解析它,并且时区应该是“-1300到1400”(+/-HHMM) 我尝试了一些,但无法验证时区。Go 如何验证时区,go,timezone,Go,Timezone,我需要验证已经给出的时区值,我也想用特定的日期格式解析它,并且时区应该是“-1300到1400”(+/-HHMM) 我尝试了一些,但无法验证时区。 如果timezone=“-1260”(这是一个无效值),那么它应该打印“无效时区”,但其行为不是这样的 这是我试过的代码- var validTZ=regexp.MustCompile(`[+-][0-9]{4}$`) tz:=“-1260” tzInt,:=strconv.Atoi(tz) t1:=time.Now().UTC() 格式化日期:=t
如果timezone=“
-1260
”(这是一个无效值),那么它应该打印“无效时区
”,但其行为不是这样的
这是我试过的代码-
var validTZ=regexp.MustCompile(`[+-][0-9]{4}$`)
tz:=“-1260”
tzInt,:=strconv.Atoi(tz)
t1:=time.Now().UTC()
格式化日期:=t1.格式(“2006-01-02T15:04:05.000”)
formattedDate+=tz
_,err:=time.Parse(“2006-01-02T15:04:05.000-0700”,格式化日期)
如果!validTZ.MatchString(tz)| |(tzInt>=-1300&&tzInt诚然,tz(1260)是tzInt>=-1300&&tzInt请编辑您的问题,将相关代码包含在问题主体中,以及您遇到的特定问题-“我无法验证时区”以什么方式?发生了什么?以及您对您的2006-01-02T15:04:05.000的期望结果是什么?我不太了解如果时区=“-1260”,它是无效的时区值,那么它应该打印“无效的时区值”你为什么不把regex
做得更具体一些呢?我看不到go的日期/时间解析器有什么帮助…是的,^[+-]([0-9]{2})([0-5]{1})([0-9]{1})$
,我用了这个,它就解决了。谢谢!它是HHMM格式的,在那个格式中,MM不能是60。@venu好的,但我的观点是:只要你测试tzInt>=-1300&&tzInt,是的,谢谢,我会修改它。@venu但是如果你修改你的问题,它是“应该打印“无效时区”,但它不会这样。”,它将开始工作:它将打印“无效时区”,所以我已经回答了你原来的问题,不是吗?是的,谢谢,但我的怀疑是不同的。
!(tzInt >= -1300 && tzInt <= 1400)
^[+-]([0-9]{2})([0-5]{1})([0-9]{1})$