golang 13位时间戳转日期

发布时间:2024-07-05 00:21:05

使用Golang将13位时间戳转换为日期

在Golang中,我们经常会遇到需要将时间戳转换为具体日期的情况。本文将介绍如何使用Golang将13位时间戳转换为日期。

首先,我们需要创建一个包含13位时间戳的变量。

timestamp := int64(1621896800000)

接下来,我们可以使用Golang的time.Unix()函数将时间戳转换为时间类型。

t := time.Unix(timestamp/1000, 0)

注意这里要将13位时间戳除以1000,因为Golang的时间戳是基于10位的。

然后,我们可以使用Format()方法将时间类型转换为字符串格式的日期。

date := t.Format("2006-01-02 15:04:05")

在上面的代码中,"2006-01-02 15:04:05"是时间格式的示例,你可以根据具体需求进行调整。

最后,我们可以打印出转换后的日期。

fmt.Println(date)

完整的代码如下:

package main

import (
    "fmt"
    "time"
)

func main() {
    timestamp := int64(1621896800000)
    t := time.Unix(timestamp/1000, 0)
    date := t.Format("2006-01-02 15:04:05")
    fmt.Println(date)
}

通过运行以上代码,我们可以得到输出结果为:

2021-05-25 08:40:00

这就是将13位时间戳转换为日期的方法。

使用Golang将13位时间戳转换为指定时区的日期

有时候,我们需要将13位时间戳转换为指定时区的日期。Golang的time.LoadLocation()函数可以帮助我们实现这一需求。

首先,我们需要导入"time"包。

import "time"

然后,使用time.LoadLocation()函数获取指定时区的*time.Location类型的值。

location, err := time.LoadLocation("Asia/Shanghai")
if err != nil {
    panic(err)
}

接下来,我们只需要在Format()方法中传入时区值即可。

date := t.In(location).Format("2006-01-02 15:04:05")

最终的代码如下:

package main

import (
    "fmt"
    "time"
)

func main() {
    timestamp := int64(1621896800000)
    t := time.Unix(timestamp/1000, 0)

    location, err := time.LoadLocation("Asia/Shanghai")
    if err != nil {
        panic(err)
    }

    date := t.In(location).Format("2006-01-02 15:04:05")
    fmt.Println(date)
}

通过运行以上代码,我们可以得到在上海时区下的日期:

2021-05-25 16:40:00

这就是将13位时间戳转换为指定时区日期的方法。

总结

本文介绍了如何使用Golang将13位时间戳转换为日期,并且提供了将其转换为指定时区的日期的方法。使用Golang的time.Unix()time.LoadLocation()函数,我们可以轻松地将时间戳转换为日期,并且根据需要选择合适的时区。

相关推荐