Golang使用time.Sub计算时间差后如何通过内置方法做条件判断
首先明确:你通过time.Time类型的Sub方法得到的diff本身就是time.Duration类型,本质是存储纳秒数的int64值,完全不需要解析格式化后的字符串做比较,Go标准库的time包已经提供了原生的时间常量可以直接用来做比较,效率和Sub方法一样高。
你写的判断逻辑只需要把时间单位替换为标准库的常量写法即可直接运行,示例代码如下:
diff := t2.Sub(t1) // 直接用time包的时间常量做比较 if diff <= 5*time.Minute { // 执行小于等于5分钟的逻辑 } if diff > 20*time.Minute { // 执行大于20分钟的逻辑 }
常用的time包时间单位常量包括:
time.Nanosecond:纳秒time.Microsecond:微秒time.Millisecond:毫秒time.Second:秒time.Minute:分钟time.Hour:小时
补充注意:你问题里写的t2.sub(t1)是小写的sub,Go语言里导出方法首字母需要大写,正确写法是t2.Sub(t1)。
内容的提问来源于stack exchange,提问作者arif
相关产品推荐
相关产品推荐

