亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何驗證時區

如何驗證時區

Go
SMILET 2022-08-15 19:08:49
我需要驗證我給定的時區值,并且我也想以特定的日期格式解析它,時區應該是“-1300到1400”(+/-HHMM)。我已經嘗試過一些,但我無法驗證時區。如果時區 = “”(這是一個無效值),那么它應該打印 “” 但它的行為不是那樣的。-1260Invalid time zone這是我嘗試過的代碼 - https://play.golang.org/p/kbTsQAW-f-_r    var validTZ = regexp.MustCompile(`[+-][0-9]{4}$`)    tz:= "-1260"    tzInt, _ := strconv.Atoi(tz)    t1 := time.Now().UTC()    formattedDate := t1.Format("2006-01-02T15:04:05.000")    formattedDate += tz    _,err:=time.Parse("2006-01-02T15:04:05.000-0700",formattedDate)    if !validTZ.MatchString(tz) || (tzInt >= -1300 && tzInt <= 1400) || err != nil {        fmt.Println("Invalid time zone")    }
查看完整描述

1 回答

?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

的確,tz (1260) 是tzInt >= -1300 && tzInt <= 1400

但是你的代碼是:

!(tzInt >= -1300 && tzInt <= 1400)

這!否定條件,使其成為 :這就是不顯示的原因。tzInt < -1300 || tzInt > 1400"Invalid time zone"

正如OP所評論的那樣,您還可以基于更精確的正則表達式打印該錯誤:

^[+-]([0-9]{2})([0-5]{1})([0-9]{1})$

這將阻止任何值。xx6y


查看完整回答
反對 回復 2022-08-15
  • 1 回答
  • 0 關注
  • 94 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號