One - One Code All

Blog Content

go获取两个时间点的时间差、当前时间秒/毫秒/纳秒数以及几天前/后、几小时前/后、几分钟前/后、几秒前/后的时间

Go   2019-10-14 16:42:37

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

now := time.Now() //获取当前时间

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)


获取指定时间后的时间

// 获取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天后的时间

newTime := time.Now().AddDate(0, 0, 2)

//newTime 的结果为时间time类型


//获取当前时间2月后的时间

newTime := time.Now().AddDate(0, 2, 0)

获取两个时间点的时间差

t1 := time.Now()

//设置期间经历了50秒时间

t2 := time.Now().Add(time.Second * 50)

fmt.Println("t2与t1相差:",t2.Sub(t1)) //t2与t1相差: 50s


示例:

package main
import (
"fmt"
"time"
)

func main() {
//Add方法和Sub方法是相反的,获取t0和t1的时间距离d是使用Sub
//将t0加d获取t1就是使用Add方法
k := time.Now()
//一天之前
d, _ := time.ParseDuration("-24h")
fmt.Println(k.Add(d))
//一周之前
fmt.Println(k.Add(d * 7))
//一月之前
fmt.Println(k.Add(d * 30))
}


上一篇:解决iterm2终端SSH连接服务器一段时间不操作之后卡死的问题
下一篇:Linux上npm通过npm-cache离线安装elasticdump工具

The minute you think of giving up, think of the reason why you held on so long.