本网站可以通过分类标签帮助你快速筛选出你想看的文章,记住地址:www.Facec.cc

golang time.time 包的常用方法和属性

获取当前时间及其秒、毫秒、纳秒数

now := time.Now() //获取当前时间
>2019-08-21 11:30:51.2470317 +0800 CST m=+0.004501101

fmt.Printf("时间戳(秒):%v;\n", time.Now().Unix())        //10位
fmt.Printf("时间戳(纳秒):%v;\n",time.Now().UnixNano())    //19位
fmt.Printf("时间戳(毫秒):%v;\n",time.Now().UnixNano() / 1e6)        //或者秒*1000也可
fmt.Printf("时间戳(纳秒-->秒):%v;\n",time.Now().UnixNano() / 1e9)

获取指定时间 的前后

// 获取50秒前的时间,方式1
st,_ := time.ParseDuration("-50s")
fmt.Println("50秒前的时间:",time.Now().Add(st))
 
// 获取1分钟前的时间,n秒前则是time.Second * -n,方式2
t := time.Now().Add(time.Minute * -1) 
fmt.Println("一分钟前的时间:",t)
 
//获取1小时前的时间
sth,_ := time.ParseDuration("-1h")
fmt.Println("1小时前的时间:",time.Now().Add(sth))
 
// 获取2天前的时间
oldTime := time.Now().AddDate(0, 0, -2)
 
//获取两个月前的时间
oldTime := time.Now().AddDate(0, -2, 0)

时间差

t1 := time.Now()
time.Sleep(20 * time.Second)
t2 := time.Now()
t3 := t2.Sub(t1).Seconds()
fmt.Println(t3)

if DateEnd.Sub(DateStart).Hours() > 30*24 {
  //"时间段最长不能超过31天"
  //异常返回
}

// 时间差的单位
Minutes()
Nanoseconds()
Seconds()
Hours()
# golang  

评论