使用 Golang 中的 'time' 包可以方便地将 int64 整数转换为时间对象,并将其转换为毫秒数。下面是详细步骤和示例代码:

package main

import (
	'fmt'
	'time'
)

func main() {
	// 以毫秒为单位的时间戳
	timestamp := int64(1633631400000)

	// 将时间戳转换为时间对象
	t := time.Unix(0, timestamp*int64(time.Millisecond))

	// 将时间对象转换为字符串形式
	timeStr := t.Format('2006-01-02 15:04:05')

	// 将字符串形式的时间转换为毫秒数
	parsedTime, err := time.Parse('2006-01-02 15:04:05', timeStr)
	if err != nil {
		fmt.Println('时间解析失败:', err)
		return
	}
	milliseconds := parsedTime.UnixNano() / int64(time.Millisecond)

	fmt.Println('转换后的时间:', timeStr)
	fmt.Println('转换后的毫秒数:', milliseconds)
}

代码解析:

  1. 定义时间戳: timestamp := int64(1633631400000) 定义一个 int64 类型的变量,表示以毫秒为单位的时间戳。
  2. 转换为时间对象: t := time.Unix(0, timestamp*int64(time.Millisecond)) 使用 time.Unix() 函数将时间戳转换为 time.Time 对象。第一个参数表示秒数,第二个参数表示纳秒数,因为时间戳是以毫秒为单位,所以需要乘以 time.Millisecond
  3. 转换为字符串: timeStr := t.Format('2006-01-02 15:04:05') 使用 time.Time 对象的 Format() 函数将时间对象转换为字符串形式。这里使用了 Go 语言中固定的时间格式 '2006-01-02 15:04:05'
  4. 解析字符串: parsedTime, err := time.Parse('2006-01-02 15:04:05', timeStr) 使用 time.Parse() 函数将字符串形式的时间解析为 time.Time 对象。
  5. 转换为毫秒: milliseconds := parsedTime.UnixNano() / int64(time.Millisecond) 使用 time.Time 对象的 UnixNano() 函数获取时间对象的纳秒数,然后除以 time.Millisecond 即可得到毫秒数。

注意事项:

  • 代码中使用的时间格式 '2006-01-02 15:04:05' 是 Go 语言中的固定时间格式,具体含义如下:

    • 2006:年份
    • 01:月份
    • 02:日期
    • 15:小时(24 小时制)
    • 04:分钟
    • 05:秒钟
  • 你可以根据实际需求修改时间格式。

希望以上内容对您有所帮助!

Golang int64 整数转时间 (毫秒) - 详细教程和示例代码

原文地址: https://www.cveoy.top/t/topic/p2zC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录