如果想得到任意两个时间段的差值,可以用sub方法
当前时间与历史任一时间相比,过了多久,则可以结合Date及Sub方法来实现
time.Date()用法
func Date(year int, month Month, day, hour, min, sec, nsec int, loc *Location) Time
//Date返回一个时区为loc、当地时间为:
year-month-day hour:min:sec + nsec nanoseconds
time.Sub()用法
func (t Time) Sub(u Time) Duration
//返回一个时间段t-u。
//如果结果超出了Duration可以表示的最大值/最小值,将返回最大值/最小值。
//要获取时间点t-d(d为Duration),可以使用t.Add(-d)。
示例代码:
package main
import (
"fmt"
"time"
)
func main(){
//传入与之相比时间,为1990年1月1日
t := time.Date(1990,01,01,00,00,00,00,time.UTC)
sbs := time.Now().Sub(t).Hours() //与现在相比,差值为小时
fmt.Println(sbs)
fmt.Printf("%T",sbs)
}
两个不同时间相比,差值为多少
可用Date方法传入两个日期
func get_days(year int, mon int, day int) float64 {
t := time.Date(year,time.Month(mon),day,00,00,00,00,time.UTC)
u := time.Date(1990,01,01,00,00,00,00,time.UTC)
sbs := t.Sub(u).Hours() //返回相差多少时间
days := sbs / 24 //转换为天数
return days
}
注意:月份数据类型比较特殊,为time.Month类型,需要把传入的代表月份的整数转换为time.Month格式。