golang int64 转time

发布时间:2024-10-02 19:46:28

在Golang开发中,经常会遇到需将int64类型转换为时间类型的需求。int64类型表示64位有符号整数,在Go语言中被广泛应用于时间戳的表示。本文将介绍如何将int64类型转换为time类型,并提供了三种不同的方法来实现这一功能。

方法一:使用time.Unix()

time.Unix()函数接受两个参数,第一个参数是秒数,第二个参数是纳秒数。我们可以利用这个函数将int64类型的时间戳转换为time类型。

具体的转换过程如下:

timestamp := int64(1623449000)
t := time.Unix(timestamp, 0)
fmt.Println(t)

上述代码中,我们将一个名为timestamp的int64类型的变量初始化为1623449000。然后,我们调用time.Unix()函数并传入timestamp作为第一个参数,0作为第二个参数。接着,将返回的time类型的结果赋值给t变量,并打印输出t的值。运行上述代码,我们将得到输出结果为2021-06-12 00:43:20 +0000 UTC。

方法二:使用time.UnixMilli()

如果我们的时间戳精确到毫秒级别,我们可以使用time.UnixMilli()函数将int64类型的时间戳转换为time类型。

具体的转换过程如下:

timestamp := int64(1623449000123)
t := time.UnixMilli(timestamp)
fmt.Println(t)

上述代码中,我们将一个名为timestamp的int64类型的变量初始化为1623449000123。然后,我们调用time.UnixMilli()函数并传入timestamp作为参数。接着,将返回的time类型的结果赋值给t变量,并打印输出t的值。运行上述代码,我们将得到输出结果为2021-06-12 00:43:20.123 +0000 UTC。

方法三:使用time.Parse()

如果我们拿到的时间戳是一个字符串类型的数据,我们可以使用time.Parse()函数将其转换为time类型。

具体的转换过程如下:

timestamp := "2021-06-12 00:43:20"
layout := "2006-01-02 15:04:05"
t, _ := time.Parse(layout, timestamp)
fmt.Println(t)

上述代码中,我们将一个名为timestamp的字符串类型的变量初始化为"2021-06-12 00:43:20"。然后,我们定义了一个名为layout的字符串类型的变量,其中包含了时间的格式信息。接着,我们调用time.Parse()函数并传入layout和timestamp作为参数,并将返回的time类型的结果赋值给t变量,并打印输出t的值。运行上述代码,我们将得到输出结果为2021-06-12 00:43:20 +0000 UTC。

通过上述的三种方法,我们可以方便地将int64类型的时间戳转换为time类型。根据实际情况,选择合适的方法对时间进行转换,可以更好地满足开发需求。

相关推荐