Go语言中的日期格式化和时区处理非常简单。可以使用time包来完成。
- 日期格式化
在Go语言中,日期格式化是通过时间模板来实现的。时间模板是一个时间字符串,其中特定字符表示不同的日期和时间部分。例如,”2006-01-02 15:04:05”就是一个时间模板,它代表年、月、日、小时、分钟和秒。
具体来说,时间模板中的每个特定字符都代表一种日期或时间部分,如下所示:
格式字符 | 说明 |
---|---|
“2006” | 年份 |
“01” | 月份 |
“02” | 日 |
“15” | 小时(24小时制) |
“03” | 小时(12小时制) |
“04” | 分钟 |
“05” | 秒 |
“PM” | 上午/下午 |
”.” | 毫秒 |
“Mon” | 缩写月份名称 |
“January” | 完整月份名称 |
“Mon Jan 2 15:04:05 -0700 MST 2006” | 标准日期时间格式 |
下面是一个日期格式化的例子:
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
fmt.Println(now.Format("2006-01-02"))
}
输出结果为:2021-08-10
在这个例子中,我们使用time.Now()
获取当前时间,并使用Format()
方法将日期格式化为”2006-01-02”的形式。
- 时区处理
在Go语言中,时区处理也非常简单。可以使用time.LoadLocation()
方法来加载指定的时区,然后将时间转换为该时区对应的时间。
下面是一个时区处理的例子:
package main
import (
"fmt"
"time"
)
func main() {
loc, err := time.LoadLocation("Asia/Shanghai")
if err != nil {
fmt.Println(err)
return
}
now := time.Now().In(loc)
fmt.Println(now)
}
输出结果为:2021-08-10 12:41:36.183254 +0800 CST
在这个例子中,我们使用time.LoadLocation()
方法加载”Asia/Shanghai”时区,并使用now.In(loc)
将当前时间转换为该时区对应的时间。