golang 日期转换
更新时间:2023-12-24介绍
在Go程序开发中遇到日期格式的转换问题是很常见的。比如,接收到了一个时间字符串,但是需要将其转换为另一种格式的日期展示,或者需要将日期时间转换为一个Unix时间戳,在此我使用Go语言为例,介绍日期格式转换的几种方法。
1. 格式化日期
格式化日期是在Go语言中转换日期格式最常用的方法。
LUTC是go语言中的一个时区,指代格林威治标准时间,以下是如何将日期时间字符串转换为时间类型并进行格式化的示例:
package main
import (
"fmt"
"time"
)
func main() {
// 定义日期时间字符串
str := "2022-01-01 00:00:00"
// 将日期时间字符串转换为时间类型
t, err := time.Parse("2006-01-02 15:04:05", str)
if err != nil {
fmt.Println(err)
}
// 将时间进行格式化
fmt.Println(t.UTC().Format("2006-01-02 15:04:05"))
}
2. 将日期时间转换为Unix时间戳
在Go语言中,我们可以使用time.Unix()函数将时间类型转换为Unix时间戳,该函数接收两个参数:一个int64类型的参数,表示时间戳的整数秒数部分;以及一个int64类型的参数,表示时间戳的小数部分(纳秒)。
以下是将日期时间转换为Unix时间戳的示例代码:
package main
import (
"fmt"
"time"
)
func main() {
// 定义日期时间字符串
str := "2022-01-01 00:00:00"
// 将日期时间字符串转换为时间类型
t, err := time.Parse("2006-01-02 15:04:05", str)
if err != nil {
fmt.Println(err)
}
// 将时间转换为Unix时间戳
unixTime := t.Unix()
fmt.Println(unixTime)
}
3. 将Unix时间戳转换为日期时间
在Go语言中,我们可以使用time.Unix()函数将Unix时间戳转换为时间类型,然后进行格式化,即可将Unix时间戳转换为日期时间。
以下是将Unix时间戳转换为日期时间的代码示例:
package main
import (
"fmt"
"time"
)
func main() {
// 定义Unix时间戳
unixTime := int64(1640995200)
// 将Unix时间戳转换为时间类型
t := time.Unix(unixTime, 0)
// 将时间进行格式化
fmt.Println(t.UTC().Format("2006-01-02 15:04:05"))
}
4. 使用time包中的函数进行转换
在time包中,除了上面介绍的常用函数,还有一些其他的函数可以帮助我们进行日期格式的转换,比如ParseInLocation函数,它可以将日期字符串解析为时间类型对象,并指定解析时使用的时区。还有将某个时间转换为本地时间等等。
以下是使用time包中的函数进行日期转换的代码示例:
package main
import (
"fmt"
"time"
)
func main() {
// 定义日期时间字符串
str := "2022-01-01 00:00:00"
// 将日期时间字符串转换为时间类型
t, err := time.ParseInLocation("2006-01-02 15:04:05", str, time.UTC)
if err != nil {
fmt.Println(err)
}
// 将时间转换为本地时间
localTime := t.Local()
// 将时间进行格式化
fmt.Println(localTime.Format("2006-01-02 15:04:05"))
}