首页  >  文章  >  后端开发  >  golang 日期类型转换

golang 日期类型转换

WBOY
WBOY原创
2023-05-10 10:02:361652浏览

Golang是一种非常流行的编程语言,它的高效性和简洁性被广泛认可。在开发应用程序中常常需要进行日期类型的转换,下面我们来介绍一下Golang日期类型转换的方法。

在Golang中,日期类型主要有time.Time和string两种类型。time.Time类型可以表示一个时间点,而string类型则是一个字符串类型表示。要在两种类型之间进行转换,可以使用Golang中提供的一些函数来实现。

  1. string转time.Time

在Golang中,可以通过time.Parse()函数将一个string类型的日期转换为time.Time类型。示例如下:

str := "2021-06-01 12:00:00"
layout := "2006-01-02 15:04:05"
t, err := time.Parse(layout, str)
if err != nil {
    fmt.Println(err)
}
fmt.Println(t)

解析函数time.Parse()需要传递两个参数:一个是日期字符串,另一个是日期字符串的格式。在上面的示例中,日期字符串是2021-06-01 12:00:00,格式字符串是2006-01-02 15:04:05。这里需要注意的是,格式字符串中的数字必须按照年、月、日、时、分、秒的顺序排列,并使用对应的格式符。

  1. time.Time转string

在Golang中,可以通过time.Format()函数将一个time.Time类型的日期转换为string类型。示例如下:

t := time.Now()
layout := "2006-01-02 15:04:05"
str := t.Format(layout)
fmt.Println(str)

格式化函数time.Format()需要传递一个格式字符串,该格式字符串与解析函数中的字符串格式相同。在上面的示例中,获取当前时间使用的是time.Now()函数,格式字符串是2006-01-02 15:04:05

  1. Unix时间戳转time.Time

在Golang中,可以通过time.Unix()函数将一个Unix时间戳转换为time.Time类型。示例如下:

unixTime := int64(1622496000)
t := time.Unix(unixTime, 0)
fmt.Println(t)

函数time.Unix()需要传递两个参数:一个是Unix时间戳,另一个是纳秒的偏移量,这里使用0作为偏移量即可。

  1. time.Time转Unix时间戳

在Golang中,可以通过time.Unix()函数将一个time.Time类型转换为Unix时间戳。示例如下:

t := time.Now()
unixTime := t.Unix()
fmt.Println(unixTime)

函数time.Unix()会返回一个Unix时间戳,并且该时间戳是int64类型的。在上面的示例中,获取当前时间使用的是time.Now()函数。

总结

Golang日期类型转换并不难,只需要使用适当的函数即可。以上介绍的四种方法可以满足大部分日期类型转换的需求。当然,在实际应用中还有许多特殊情况需要考虑,需要根据具体情况进行调整,但这已经足够帮助我们入门了。

以上是golang 日期类型转换的详细内容。更多信息请关注PHP中文网其他相关文章!

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