Go语言判断字符串是否为秒级时间戳
Go语言判断字符串是否为秒级时间戳
可以使用 time 包中的 Unix 函数将字符串转换为时间戳,然后判断时间戳的位数是否为10位即可判断是否为秒级时间戳。
示例代码:
package main
import (
"fmt"
"strconv"
"time"
)
func isSecondTimestamp(str string) bool {
// 将字符串转换为时间戳
timestamp, err := strconv.ParseInt(str, 10, 64)
if err != nil {
return false
}
// 判断时间戳位数是否为10位
return len(str) == 10 && time.Unix(timestamp, 0).UTC().Format('2006-01-02 15:04:05') == str
}
func main() {
fmt.Println(isSecondTimestamp('1631378600')) // true
fmt.Println(isSecondTimestamp('16313786000')) // false
fmt.Println(isSecondTimestamp('2021-09-11 12:30:00')) // false
}
输出结果:
true
false
false
注意:
上面的代码中还对时间戳进行了格式化,这是为了避免出现类似'1631378600'和'1631378600000'这样的时间戳字符串被误判的情况。
原文地址: https://www.cveoy.top/t/topic/mJPA 著作权归作者所有。请勿转载和采集!