前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >go时间/时间戳操作大全

go时间/时间戳操作大全

原创
作者头像
李昊天
修改2019-07-09 11:26:37
2.1K0
修改2019-07-09 11:26:37
举报
文章被收录于专栏:每天进步一点点

基本操作

01: 获取当前时间

代码语言:txt
复制
dateTime := time.Now()

fmt.Println(dateTime)

02: 获取年 月 日 时 分 秒 纳秒

代码语言:txt
复制
year := time.Now().Year() //年



fmt.Println(year)



month := time.Now().Month() //月

fmt.Println(month)



day := time.Now().Day() //日

fmt.Println(day)



hour := time.Now().Hour() //小时

fmt.Println(hour)



minute := time.Now().Minute() //分钟

fmt.Println(minute)



second := time.Now().Second() //秒

fmt.Println(second)



nanosecond := time.Now().Nanosecond() //纳秒

fmt.Println(nanosecond)

03: 获取当前时间戳

代码语言:txt
复制
timeUnix := time.Now().Unix()         //单位秒

timeUnixNano := time.Now().UnixNano() //单位纳秒

    

fmt.Println(timeUnix)

fmt.Println(timeUnixNano)

04: 将时间戳格式化

代码语言:txt
复制
fmt.Println(time.Now().Format("2006-01-02 15:04:05"))

05: 时间戳转为go格式的时间

代码语言:txt
复制
var timeUnix int64 = 1562555859

fmt.Println(time.Unix(timeUnix,0))



// 之后可以用Format 比如

fmt.Println(time.Unix(timeUnix, 0).Format("2006-01-02 15:04:05"))

06: str格式化时间转时间戳

代码语言:txt
复制
t := time.Date(2014, 1, 7, 5, 50, 4, 0, time.Local).Unix()



fmt.Println(t)

时间的计算

01: 获取今天0点0时0分的时间戳

代码语言:txt
复制
currentTime := time.Now()

startTime := time.Date(currentTime.Year(), currentTime.Month(), currentTime.Day(), 0, 0, 0, 0, currentTime.Location())

fmt.Println(startTime)

fmt.Println(startTime.Format("2006/01/02 15:04:05"))

02: 获取今天23:59:59秒的时间戳

代码语言:txt
复制
currentTime := time.Now()

endTime := time.Date(currentTime.Year(), currentTime.Month(), currentTime.Day(), 23, 59, 59, 0, currentTime.Location())

fmt.Println(endTime)

fmt.Println(endTime.Format("2006/01/02 15:04:05"))

03: 获取1分钟之前的时间

代码语言:txt
复制
m, \_ := time.ParseDuration("-1m")

result := currentTime.Add(m)



fmt.Println(result)

fmt.Println(result.Format("2006/01/02 15:04:05"))

04: 获取1小时之前的时间

代码语言:txt
复制
m, \_ := time.ParseDuration("-1h")

result := currentTime.Add(m)

fmt.Println(result)

fmt.Println(result.Format("2006/01/02 15:04:05"))

05: 获取1分钟之后的时间

代码语言:txt
复制
m, \_ := time.ParseDuration("1m")

result := currentTime.Add(m)



fmt.Println(result)

fmt.Println(result.Format("2006/01/02 15:04:05"))

06: 获取1小时之后的时间

代码语言:txt
复制
m, \_ := time.ParseDuration("1h")

result := currentTime.Add(m)

fmt.Println(result)

fmt.Println(result.Format("2006/01/02 15:04:05"))

07 :计算两个时间戳

代码语言:txt
复制
afterTime, \_ := time.ParseDuration("1h")

result := currentTime.Add(afterTime)



beforeTime, \_ := time.ParseDuration("-1h")

result2 := currentTime.Add(beforeTime)



m := result.Sub(result2)

fmt.Printf("%v 分钟 \n", m.Minutes())



h := result.Sub(result2)

fmt.Printf("%v小时 \n", h.Hours())



d := result.Sub(result2)

fmt.Printf("%v 天\n", d.Hours()/24)

08: 判断一个时间是否在一个时间之后

代码语言:txt
复制
stringTime, \_ := time.Parse("2006-01-02 15:04:05", "2019-12-12 12:00:00")

beforeOrAfter := stringTime.After(time.Now())



if true == beforeOrAfter {

    fmt.Println("2019-12-12 12:00:00在当前时间之后!")

} else {

    fmt.Println("2019-12-12 12:00:00在当前时间之前!")

}

09: 判断一个时间相比另外一个时间过去了多久

代码语言:txt
复制
startTime := time.Now()

time.Sleep(time.Second \* 5)



fmt.Println("离现在过去了:", time.Since(startTime))

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本操作
  • 时间的计算
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档