Golang 日期转换
在 Golang 中,日期的表示方式有多种,包括 time.Time、string、int64 等。因此,如何对这些日期进行转换是一个常见的问题。
本文将介绍 Golang 中日期转换的常见方法。主要包括以下几个方面:
- time.Time 转 string
- string 转 time.Time
- int64 转 time.Time
- time.Time 转 int64
- 其他格式的日期转换
- time.Time 转 string
time.Time 类型可以使用 Format 函数将其转换成字符串。例如:
t := time.Now()
str := t.Format("2006-01-02 15:04:05") // 以指定格式转换为字符串
其中,Format 的参数是日期格式化字符串,具体格式可以参考 Golang 的文档。
- string 转 time.Time
string 转 time.Time 可以使用 time.Parse 函数。例如:
str := "2022-03-25 10:30:00"
t, err := time.Parse("2006-01-02 15:04:05", str) // 将字符串解析成时间
if err != nil {
// 解析失败
}
其中,第一个参数是日期格式化字符串,第二个参数是需要解析的字符串。如果解析失败,err 不为空。
- int64 转 time.Time
在 Golang 中,时间戳通常以 int64 类型表示,可以使用 time.Unix 函数将其转换成 time.Time 类型。例如:
timestamp := int64(1648238400)
t := time.Unix(timestamp, 0) // 将时间戳转换成时间
其中,第一个参数是时间戳,第二个参数是纳秒,可以设置为 0。
- time.Time 转 int64
time.Time 类型可以使用 Unix 函数将其转换成时间戳。例如:
t := time.Now()
timestamp := t.Unix() // 将时间转换成时间戳
该函数返回的是 int64 类型的时间戳。
- 其他格式的日期转换
如果需要将其他格式的日期转换成 time.Time 类型,可以先将其转换成 string 类型,再使用 time.Parse 函数解析。例如:
date := "2022年03月25日 10时30分00秒"
layout := "2006年01月02日 15时04分05秒" // 对应日期格式字符串
str, err := time.Parse(layout, date) // 先将其转换成字符串
if err != nil {
// 解析失败
}
t, err := time.Parse("2006-01-02 15:04:05", str.Format("2006-01-02 15:04:05")) // 再解析成时间
if err != nil {
// 解析失败
}
以上就是 Golang 中日期转换的常见方法。无论是将 time.Time 转换成 string,还是将 string 转换成 time.Time,都可以通过 Golang 标准库中的函数进行转换。对于其他格式的日期,可以先将其转换成 string 类型,再使用 time.Parse 函数解析。
以上就是golang 日期转换的详细内容,更多请关注编程网其它相关文章!