首页 >后端开发 >Golang >golang 日期转换

golang 日期转换

王林
王林原创
2023-05-21 14:16:071158浏览

Golang 日期转换

在 Golang 中,日期的表示方式有多种,包括 time.Time、string、int64 等。因此,如何对这些日期进行转换是一个常见的问题。

本文将介绍 Golang 中日期转换的常见方法。主要包括以下几个方面:

  1. time.Time 转 string
  2. string 转 time.Time
  3. int64 转 time.Time
  4. time.Time 转 int64
  5. 其他格式的日期转换
  6. time.Time 转 string

time.Time 类型可以使用 Format 函数将其转换成字符串。例如:

t := time.Now()
str := t.Format("2006-01-02 15:04:05") // 以指定格式转换为字符串

其中,Format 的参数是日期格式化字符串,具体格式可以参考 Golang 的文档。

  1. 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 不为空。

  1. int64 转 time.Time

在 Golang 中,时间戳通常以 int64 类型表示,可以使用 time.Unix 函数将其转换成 time.Time 类型。例如:

timestamp := int64(1648238400)
t := time.Unix(timestamp, 0) // 将时间戳转换成时间

其中,第一个参数是时间戳,第二个参数是纳秒,可以设置为 0。

  1. time.Time 转 int64

time.Time 类型可以使用 Unix 函数将其转换成时间戳。例如:

t := time.Now()
timestamp := t.Unix() // 将时间转换成时间戳

该函数返回的是 int64 类型的时间戳。

  1. 其他格式的日期转换

如果需要将其他格式的日期转换成 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn