go 获取当前时间,以及时间格式转换

参考:golang获取当前时间、时间戳和时间字符串及它们之间的相互转换

1.获取当前时间

time.Now() , 获取 年 月 日 时 分 秒 纳秒 以及 time.Date()的用法
备注:这里给大家推荐一本书:go语言精进之路(1) 和 (2)

t := time.Now()	//获取当前时间,类型是go的时间类型Time

tY := time.Now().Year()
tMo := time.Now().Month()
tD := time.Now().Day()
tH := time.Now().Hour()
tMi := time.Now().Minute()
tS := time.Now().Second()
tNaS := time.Now().Nanosecond()

curTimeDate := time.Date(tY, tMo, tD, tH, tMi, tS, tNaS, time.Local)

fmt.Println("time.Now() = ", t)
fmt.Println("tY:tMo:tD:tH:tMi:tS = ", tY, tMo, tD, tH, tMi, tS)
fmt.Println("curTimeDate = ", curTimeDate)

输出格式如下

time.Now() =  2022-09-08 10:22:19.0001454 +0800 CST m=+0.007427901
tY:tMo:tD:tH:tMi:tS =  2022 September 8 10 22 19                  
curTimeDate =  2022-09-08 10:22:19.0266219 +0800 CST  

说明:从打印结果可以看出,time.Now()和Date()方法都可以获取当前时间,time.Now()用起来比较简单,但是Date()可以获取不同的精确值,如time.Date(tY, tMo, tD, tH, tMi, tS, 0, time.Local)将毫秒省略,精确到秒,结果为:curTimeDate = 2022-09-08 10:25:59 +0800 CST

2、获取当前时间戳

tU := time.Now().Unix()       //单位s,打印结果:1662605179
tUNa := time.Now().UnixNano() //单位纳秒,打印结果:1662605179395326000
fmt.Println("tu = ", tU)
fmt.Println("tUNa = ", tUNa)

输出格式如下

tu =  1662605179                                                  
tUNa =  1662605179395326000   

3.获取当前时间的字符串格式

tStr := time.Now().Format("2006-01-02 15:04:05") //当前时间的字符串,2006-01-02 15:04:05据说是golang的诞生时间,固定写法
fmt.Println("tStr = ", tStr)                     //打印结果:2022-09-08 10:58:38

4.它们之间的相互转化

  1. 时间戳 转 时间字符串 (int64 -> string)
tU := time.Now().Unix() //已知的时间戳

tFStr := time.Unix(tU, 0).Format("2006-01-02 15:04:05")

fmt.Println("tFStr = ", tFStr) //打印结果:tFStr =  2022-09-08 11:02:39  
  1. 时间字符串 转 时间 (string -> Time)
tFStr := "2022-09-08 11:02:39"
fT, err := time.Parse("2006-01-02 15:04:05", tFStr)
if err == nil {
    fmt.Println("fT = ", fT) //打印结果:2022-09-08 11:02:39 +0000 UTC
}
  1. 时间字符串 转 时间戳 (string -> int64)

只需要对上面的时间,进行Unix转化即可

tFStr := "2022-09-08 11:02:39"
fT, err := time.Parse("2006-01-02 15:04:05", tFStr)
if err == nil {
    fmt.Println("fT = ", fT)         //时间字符串转时间:打印结果:2022-09-08 11:02:39 +0000 UTC
    fmt.Println("fTU = ", fT.Unix()) //将时间 转换成 时间戳:1662634959
}
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值