golang中日期操作之日期格式化及日期转换

时间:2025-02-26 08:10:00

golang中并没有像java一样提供类似yyyy-MM-dd HH:mm:ss格式的操作,而是将其定义为golang的诞生时间:

2006-01-02 15:04:05 -0700 MST
注意这在golang的日期格式化里不是一个具体日期,而是格式,这样如果我们需要格式化日期,可以如下操作

timeNow := ()
("yyyy-MM-dd HH:mm:ss" ,("2006-01-02 15:04:05"))
// 打印: yyyy-MM-dd HH:mm:ss: 2022-05-11 14:24:19
接下来说下Time中的几个方法:

() 获取时间秒数,返回的是unix时间秒

("from 1970-01-01 to now seconds: ",int32(().Unix()))
() 返回年月日:

year,month,day := ()
(year,month,day)
// 注意打印的是: 2022 May 11
 时间增减:

timeLast := (0,0,-1)
(("2006-01-02 15:04:05"))
 增加指定的时间,可以精确到纳秒

time2 := ((2000*))
(("2006-01-02 15:04:05"))
 是否在指定时间之后,如果是返回true  是否在指定时间之前,如果是返回true  按照指定格式将字符串转换为日期:

time2,err := ("2006-01-02 15:04:05","2022-05-11 15:04:05")
if err != nil {
	(err)
}
(("2006-01-02 15:04:05"))
补充:go语言时间和日期的转化

go 语言中使用表示时间。我们可以通过函数获取当前的时间对象,然后从时间对象中可以获取到年、月、日、时、分、秒等信息。

package main

import (
    "fmt"
    "time"
)

func main() {
    t := () // 获取当前时间
    ("当前时间:%v\n", t)
    ("年", ())
    ("月", ())
    ("日", ())
    ("时", ())
    ("分", ())
    ("秒", ())
}
输出

当前时间:2022-05-19 21:38:39.7367663 +0800 CST m=+0.001805001年 2022月 May日 19 时 21 分 38

time 包中定义的时间间隔类型的常量如下:

const (
    Nanosecond  Duration = 1
    Microsecond          = 1000 * Nanosecond
    Millisecond          = 1000 * Microsecond
    Second               = 1000 * Millisecond
    Minute               = 60 * Second
    Hour                 = 60 * Minute
)
例如:表示1小时,表示1秒。