首页 >后端开发 >Golang >如何在 Go 中正确检索 Unix 时间戳?

如何在 Go 中正确检索 Unix 时间戳?

Susan Sarandon
Susan Sarandon原创
2024-12-03 11:02:10416浏览

How to Correctly Retrieve a Unix Timestamp in Go?

在 Go 中检索 Unix 时间戳

在 Go 中,可以实现获取 Unix 时间戳(自纪元以来的当前时间,以秒为单位)使用时间包。此时间戳通常用于各种目的,例如用于文件修改或数据库时间戳。

原始代码

问题中提供的代码尝试检索 Unix 时间戳使用 os.Time 函数:

if t, _, err := os.Time(); err == nil {
    port[5] = int32(t)
}

此代码片段存在逻辑错误。下面是代码的详细分解:

  • os.Time():该函数返回 Time 类型,具有任意时区偏移的挂钟时间戳。
  • _, _, err := os.Time():由于我们只关心当前本地时区的时间戳,因此我们使用两个下划线命名的变量(_表示空变量名)来丢弃其他两个返回值。
  • port[5] = int32(t):此行尝试将 Time 值直接分配给 int32 数组元素。但是,Time 是 time.Time 类型,与 int32 不直接兼容。

更新的代码

要在 Go 中获取 Unix 时间戳,更合适的函数是 time.Now().Unix()。此函数返回一个整数,表示当前时间为自 Unix 纪元(UTC 时间 1970 年 1 月 1 日)以来的秒数。更新后的代码将是:

import "time"

...

port[5] = time.Now().Unix()

此修订后的代码正确检索 Unix 时间戳,并通过使用 time.Now().Unix() 进行转换,将其作为 int32 分配给 port[5] 元素,它返回一个整数。

以上是如何在 Go 中正确检索 Unix 时间戳?的详细内容。更多信息请关注PHP中文网其他相关文章!

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