我正在嘗試創建一個函式來告訴我時間戳是否有效。
我的功能看起來像
// IsTimestamp checks if a string contains a timestamp.
func IsTimestamp(str string) bool {
_, err := time.Parse("2006-01-02 15:04:05.999", str)
if err != nil {
return false
}
return true
}
然而,2022-01-14T20:56:55Z當它是一個有效的時間戳時,傳入回傳 false。
我認為這可能與我在 time.Parse 中使用的布局有關,但我嘗試只使用日期但沒有運氣。
uj5u.com熱心網友回復:
您的布局與您的輸入字串不匹配,因此預計它未成功決議。
檔案說:
Parse 決議格式化的字串并回傳它所代表的時間值。請參閱名為 Layout 的常量的檔案以了解如何表示格式。第二個引數必須可以使用作為第一個引數提供的格式字串(布局)進行決議。
因此,您應該使用與您的輸入相匹配的布局。下面,我使用的是RFC3339,這是您輸入字串的布局。
if _, err := time.Parse(time.RFC3339, str); err != nil {
...
}
https://go.dev/play/p/_Q26NS2wwfy
uj5u.com熱心網友回復:
2022-01-14T20:56:55Z與布局不匹配,2006-01-02 15:04:05.999因為:
- 布局需要一天后有一個空格,而不是
T - 布局需要精確的三位數毫秒(只給出兩個
55) - 布局不希望指定時區。
Z不是有效的。
你可以2022-01-14T20:56:55Z與布局相匹配2006-01-02T15:04:05.99Z,或者2006-01-02T15:04:05Z。或者更好的是,使用The Fool's answer。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/473036.html
標籤:去
上一篇:Go程式列印星號而不是實際字符
