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

Posted Leo Han

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang中日期操作,日期格式化,日期转换相关的知识,希望对你有一定的参考价值。

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"))

以上是关于golang中日期操作,日期格式化,日期转换的主要内容,如果未能解决你的问题,请参考以下文章

Golang basic_leamingtime 包以及日期函数

Golang basic_leamingtime 包以及日期函数

Hive日期格式转换详解(包含13位时间戳转毫秒时间)

js 日期格式化及日期增减

Golang:字符串日期日期

excel表格中怎样把19910108数字转换成日期?