golang中日期操作,日期格式化,日期转换

本文介绍了Go语言中时间处理的方法,包括按照'2006-01-0215:04:05-0700MST'格式进行格式化,使用Time.Unix获取Unix时间戳,Time.Date获取年月日,Time.AddDate和Add进行时间增减,以及Time.After和Before判断时间先后。此外,还讲解了如何使用Time.Parse解析日期字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

golang中并没有像java一样提供类似yyyy-MM-dd HH:mm:ss格式的操作,而是将其定义为golang的诞生时间:
2006-01-02 15:04:05 -0700 MST
注意这在golang的日期格式化里不是一个具体日期,而是格式,这样如果我们需要格式化日期,可以如下操作

timeNow := time.Now()
fmt.Println("yyyy-MM-dd HH:mm:ss" ,timeNow.Format("2006-01-02 15:04:05"))
// 打印: yyyy-MM-dd HH:mm:ss: 2022-05-11 14:24:19

接下来说下Time中的几个方法:

Time.Unix() 获取时间秒数,返回的是unix时间秒
fmt.Println("from 1970-01-01 to now seconds: ",int32(time.Now().Unix()))
Time.Date() 返回年月日:
year,month,day := timeNow.Date()
fmt.Println(year,month,day)
// 注意打印的是: 2022 May 11
Time.AddDate 时间增减:
timeLast := timeNow.AddDate(0,0,-1)
fmt.Println(timeLast.Format("2006-01-02 15:04:05"))
Time.Add 增加指定的时间,可以精确到纳秒
time2 := timeNow.Add(time.Duration(2000*time.Millisecond))
fmt.Println(time2.Format("2006-01-02 15:04:05"))
Time.After 是否在指定时间之后,如果是返回true
Time.Before 是否在指定时间之前,如果是返回true
time.Parse 按照指定格式将字符串转换为日期:
time2,err := time.Parse("2006-01-02 15:04:05","2022-05-11 15:04:05")
if err != nil {
	fmt.Println(err)
}
fmt.Println(time2.Format("2006-01-02 15:04:05"))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值