欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

go时间/时间戳操作大全(小结)

程序员文章站 2022-04-28 17:21:31
基本操作 01: 获取当前时间 datetime := time.now() fmt.println(datetime) 02: 获取年 月 日 时...

基本操作

01: 获取当前时间

datetime := time.now()
fmt.println(datetime)

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

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: 获取当前时间戳

timeunix := time.now().unix()     //单位秒
timeunixnano := time.now().unixnano() //单位纳秒
  
fmt.println(timeunix)
fmt.println(timeunixnano)

04: 将时间戳格式化

fmt.println(time.now().format("2006-01-02 15:04:05"))

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

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格式化时间转时间戳

t := time.date(2014, 1, 7, 5, 50, 4, 0, time.local).unix()

fmt.println(t)

时间的计算

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

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秒的时间戳

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分钟之前的时间

m, _ := time.parseduration("-1m")
result := currenttime.add(m)

fmt.println(result)
fmt.println(result.format("2006/01/02 15:04:05"))

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

m, _ := time.parseduration("-1h")
result := currenttime.add(m)
fmt.println(result)
fmt.println(result.format("2006/01/02 15:04:05"))

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

m, _ := time.parseduration("1m")
result := currenttime.add(m)

fmt.println(result)
fmt.println(result.format("2006/01/02 15:04:05"))

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

m, _ := time.parseduration("1h")
result := currenttime.add(m)
fmt.println(result)
fmt.println(result.format("2006/01/02 15:04:05"))

07 :计算两个时间戳

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: 判断一个时间是否在一个时间之后

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: 判断一个时间相比另外一个时间过去了多久

starttime := time.now()
time.sleep(time.second * 5)

fmt.println("离现在过去了:", time.since(starttime))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。