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'这样的时间戳字符串被误判的情况。

Go语言判断字符串是否为秒级时间戳

原文地址: https://www.cveoy.top/t/topic/mJPA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录