go时间戳实例(秒、毫秒、纳秒)

 更新时间:2026年06月22日 14:48:44   作者:Grassto  
这段文章主要讨论了JavaScript与Go语言获取时间戳的区别,并强调了在开发中应进行充分测试的重要性,特别指出Go语言的时间戳单位与JavaScript不同,可能导致数据传输错误

go时间戳(秒、毫秒、纳秒)

注意点

js得到的时间戳和go得到的时间戳是不一样的,js得到的是以毫秒为单位的,而go得到的是以秒或纳秒为单位的时间戳。

js

	var timestamp = new Date().getTime()
	console.log(timestamp) //1565084135229 毫秒

go

	now:= time.Now()
	fmt.Println(now.Unix()) // 1565084298 秒
	fmt.Println(now.UnixNano()) // 1565084298178502600 纳秒
	fmt.Println(now.UnixNano() / 1e6) // 1565084298178 毫秒

总结

当初刚接触go的时候,以为go中的 time.Now().Unix() 得到的时间戳是和js中的 new Date().getTime() 的时间戳是一样的,导致在数据传输过程中出现了错误,还找了半天的bug,闹出了笑话。

所以说,在使用自己所没用过的方法时,不能理所当然,一定要先测试一下,这样总体会更加的节省时间。

go1.17(含)版本后,官方提供了直接获取毫秒,微秒值的方法:

// UnixMilli returns t as a Unix time, the number of milliseconds elapsed since
// January 1, 1970 UTC. The result is undefined if the Unix time in
// milliseconds cannot be represented by an int64 (a date more than 292 million
// years before or after 1970). The result does not depend on the
// location associated with t.
func (t Time) UnixMilli() int64 {
	return t.unixSec()*1e3 + int64(t.nsec())/1e6
}

// UnixMicro returns t as a Unix time, the number of microseconds elapsed since
// January 1, 1970 UTC. The result is undefined if the Unix time in
// microseconds cannot be represented by an int64 (a date before year -290307 or
// after year 294246). The result does not depend on the location associated
// with t.
func (t Time) UnixMicro() int64 {
	return t.unixSec()*1e6 + int64(t.nsec())/1e3
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解Go语言如何进行Http调用

    详解Go语言如何进行Http调用

    无论是微服务还是单体架构等,服务间都有相互通信的时候,而最直接的通信方法就是 HTTP 调用,本文将会介绍在 Go 语言里,如何进行 HTTP 调用,需要的可以参考一下
    2022-12-12
  • GO语言实现二维码扫码的示例代码

    GO语言实现二维码扫码的示例代码

    你对二维码扫码的流程有困惑吗,这篇文章就结合笔者自身的开发经验进行分享,让大家熟悉并掌握此功能,感兴趣的小伙伴快跟随小编一起学习一下吧
    2023-06-06
  • Go语言如何利用Mutex保障数据读写正确

    Go语言如何利用Mutex保障数据读写正确

    这篇文章主要介绍了互斥锁的实现机制,以及 Go 标准库的互斥锁 Mutex 的基本使用方法,文中的示例代码讲解详细,需要的小伙伴可以参考一下
    2023-05-05
  • golang给函数参数设置默认值的几种方式小结(函数参数默认值

    golang给函数参数设置默认值的几种方式小结(函数参数默认值

    在日常开发中我们有时候需要使用默认设置,下面这篇文章主要给大家介绍了关于golang给函数参数设置默认值的几种方式小结的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • GoFrame框架garray并发安全数组使用开箱体验

    GoFrame框架garray并发安全数组使用开箱体验

    这篇文章主要介绍了GoFrame框架garray并发安全数组使用开箱体验,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Go 语言中的 http.FileSystem详细解析

    Go 语言中的 http.FileSystem详细解析

    在本文中,我们深入探讨了 Go 语言中的 http.FileSystem 接口,并介绍了它的基本原理、使用方法以及实际应用场景,感兴趣的朋友跟随小编一起看看吧
    2024-03-03
  • Go构建WiFi局域网聊天室示例详解

    Go构建WiFi局域网聊天室示例详解

    这篇文章主要为大家介绍了Go构建WiFi局域网聊天室示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • golang编程开发使用sort排序示例详解

    golang编程开发使用sort排序示例详解

    这篇文章主要为大家介绍了go语言编程开发使用sort来排序示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2021-11-11
  • 通过手机案例理解Go设计模式之装饰器模式的功能属性

    通过手机案例理解Go设计模式之装饰器模式的功能属性

    这篇文章主要为大家介绍了Go设计模式之装饰器模式的功能属性,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • 一文搞懂Golang 时间和日期相关函数

    一文搞懂Golang 时间和日期相关函数

    这篇文章主要介绍了Golang 时间和日期相关函数,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12

最新评论