Java OpenResty Spring Spring Boot MySQL Redis MongoDB PostgreSQL Linux Android Nginx 面试 小程序 Arthas JVM AQS juc Kubernetes Docker 诊断工具


Go 时间加减、计算方法耗、毫秒转 Time

Go 大约 1968 字

时间日期

  • Now():当前Time对象。
  • Date():当前年月日。年和日为int类型,月为Month类型。
  • YearDay():当天是一年中的第几天。
  • Weekday():当天是星期几。
  • Unix():时间戳,秒。
  • UnixNano():时间戳,纳秒。
  • UnixNano() / 1e6:时间戳,毫秒。
t := time.Now()
fmt.Println("time.Now():", t) // 2020-10-24 22:10:53.328973 +0800 CST m=+0.006015101
year, month, day := t.Date()
fmt.Println("日期:", year, month, day) // 2020 October 24
fmt.Println("一年中的第几天:", t.YearDay()) // 298
fmt.Println("星期几:", t.Weekday()) // Saturday
fmt.Println("年:", t.Year()) // 2020
fmt.Println("月:", t.Month()) // October
fmt.Println("日:", t.Day()) // 24
fmt.Println("时:", t.Hour()) // 22
fmt.Println("分:", t.Minute()) // 10
fmt.Println("秒:", t.Second()) // 53
fmt.Println("纳秒:", t.Nanosecond()) // 328973000
fmt.Println("秒时间戳:", t.Unix()) // 1603548653
fmt.Println("纳秒时间戳:", t.UnixNano()) // 1603548653328973000
fmt.Println("毫秒时间戳:", t.UnixNano() / 1e6) // 1603548653328

线程睡眠

可以使用Duration对象和指数e

time.Sleep(2 * time.Second) // 休眠2秒
time.Sleep(2e9) // 休眠2秒

计算耗时

使用Sub()计算两个Time间隔。

t := time.Now()
time.Sleep(2e9) // 休眠2秒
delta := time.Now().Sub(t)
fmt.Println("时间差:", delta) // 2.0534341s

时间加减

使用Add增加纳秒、微秒、毫秒、秒、分、时,接收Duration对象。

使用AddDate增加年、月、日,接收int参数。

t := time.Now()
addOneHour := t.Add(time.Hour)
addTwoHour := t.Add(2 * time.Hour)
fmt.Println("增加1小时:", addOneHour)
fmt.Println("增加2小时:", addTwoHour)

subTwoHour := t.Add(-2 * time.Hour)
fmt.Println("减去2小时:", subTwoHour)

addDate := t.AddDate(1, 0, 0)
fmt.Println("增加1年:", addDate) // 2021-10-24 22:10:53.328973 +0800 CST

subDate := t.AddDate(-1, 0, 0)
fmt.Println("减去1年:", subDate) // 2019-10-24 22:10:53.328973 +0800 CST

before := t.Before(t.Add(time.Hour))
fmt.Println("before:", before)

after := t.After(t.Add(time.Hour))
fmt.Println("after:", after)

毫秒转换

毫秒转换Time

nanoSecondToTime := time.Unix(0, 1603546715761482000)
fmt.Println("毫秒值转Time:", nanoSecondToTime) // 2020-10-24 21:38:35.761482 +0800 CST

秒转换Time

secondToTime := time.Unix(1603546715, 0)
fmt.Println("秒值转Time:", secondToTime) // 2020-10-24 21:38:35 +0800 CST
阅读 22038 · 发布于 2020-10-25

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb

扫描下方二维码关注公众号和小程序↓↓↓

扫描二维码关注我
昵称:
随便看看 换一批