Golang 日期转换
在 Golang 中,日期的表示方式有多种,包括 time.Time、string、int64 等。因此,如何对这些日期进行转换是一个常见的问题。
本文将介绍 Golang 中日期转换的常见方法。主要包括以下几个方面:
time.Time 类型可以使用 Format 函数将其转换成字符串。例如:
t := time.Now() str := t.Format("2006-01-02 15:04:05") // 以指定格式转换为字符串
其中,Format 的参数是日期格式化字符串,具体格式可以参考 Golang 的文档。
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 不为空。
在 Golang 中,时间戳通常以 int64 类型表示,可以使用 time.Unix 函数将其转换成 time.Time 类型。例如:
timestamp := int64(1648238400) t := time.Unix(timestamp, 0) // 将时间戳转换成时间
其中,第一个参数是时间戳,第二个参数是纳秒,可以设置为 0。
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 日期转换的详细内容。更多信息请关注PHP中文网其他相关文章!