Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 如何验证时区_Go_Timezone - Fatal编程技术网

Go 如何验证时区

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

我需要验证已经给出的时区值,我也想用特定的日期格式解析它,并且时区应该是“-1300到1400”(+/-HHMM)

我尝试了一些,但无法验证时区。
如果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})$