Go 语言的 time
包是一个非常常用的包,提供了处理时间和日期的功能。本文将详细介绍 time
包的使用方法,包括如何创建时间、时间格式化、时间计算和定时器等。
时间的创建
在 Go 中,我们可以使用多种方式来创建时间对象。下面介绍其中几种常用的方式。
time.Now()
time.Now()
函数可以返回当前本地时间。其基本用法如下:
t := time.Now()
fmt.Println(t)
上述代码将输出当前本地时间,例如:
代码语言:javascript复制2023-04-22 00:23:45.678901 0800 CST m= 0.000000001
time.Date()
time.Date()
函数可以根据指定的年、月、日、时、分、秒和纳秒创建一个时间对象。其基本用法如下:
t := time.Date(2023, time.April, 22, 0, 0, 0, 0, time.Local)
fmt.Println(t)
上述代码将创建一个表示 2023 年 4 月 22 日 0 点 0 分 0 秒的本地时间对象。
time.Parse()
time.Parse()
函数可以将一个字符串解析为时间对象。其基本用法如下:
t, err := time.Parse("2006-01-02 15:04:05", "2023-04-22 00:00:00")
if err != nil {
fmt.Println(err)
} else {
fmt.Println(t)
}
上述代码将解析字符串 "2023-04-22 00:00:00",并将其转换为时间对象。其中第一个参数是时间格式化字符串,第二个参数是待解析的字符串。
时间的格式化
在 Go 中,我们可以使用 time.Format()
函数将时间对象格式化为指定的字符串。时间格式化字符串由一系列预定义的占位符组成。下面是常用的占位符及其含义:
2006
:年份占位符,固定值,表示年份采用 2006 年。01
:月份占位符,表示月份采用 01、02、03、……、12 的形式。02
:日期占位符,表示日期采用 01、02、03、……、31 的形式。15
:小时占位符,表示小时采用 00、01、02、……、23 的形式。04
:分钟占位符,表示分钟采用 00、01、02、……、59 的形式。05
:秒钟占位符,表示秒钟采用 00、01、02、……、59 的形式。000
:毫秒占位符,表示毫秒采用 000、001、002、……、999 的形式。999999
:微秒占位符,表示微秒采用 000000、000001、000002、……、999999 的形
下面是几个常用的时间格式化字符串及其示例:
代码语言:javascript复制t := time.Date(2023, time.April, 22, 0, 0, 0, 0, time.Local)
// 输出格式化字符串 "2006-01-02 15:04:05"
fmt.Println(t.Format("2006-01-02 15:04:05")) // 2023-04-22 00:00:00
// 输出格式化字符串 "2006-01-02 03:04:05 PM"
fmt.Println(t.Format("2006-01-02 03:04:05 PM")) // 2023-04-22 12:00:00 AM
// 输出格式化字符串 "2006年01月02日 15时04分05秒"
fmt.Println(t.Format("2006年01月02日 15时04分05秒")) // 2023年04月22日 00时00分00秒