Go获取两个时区的时间差


Posted in Golang onApril 20, 2022

获取当前时间及其秒、毫秒、纳秒数

now := time.Now() //获取当前时间
==>2019-08-21 11:30:51.2470317 +0800 CST m=+0.004501101
fmt.Printf("时间戳(秒):%v;\n", time.Now().Unix())        //10位
fmt.Printf("时间戳(纳秒):%v;\n",time.Now().UnixNano())    //19位
fmt.Printf("时间戳(毫秒):%v;\n",time.Now().UnixNano() / 1e6)        //或者秒*1000也可
fmt.Printf("时间戳(纳秒-->秒):%v;\n",time.Now().UnixNano() / 1e9)

两个时间作差,第一个时间是t1,第二个时间是t2,那么时间差是t2.Sub(t1)

具体显示时间可以通过Format(time.ANSIC)打印时间格式,以及In接口+Location设置时区

例如:

TimeLocation, err := time.LoadLocation("Asia/Shanghai")
//err处理
t1.Now().In(TimeLocation).Format(time.ANSIC)

获取两个时间点时间差代码

package main

import (
    "fmt"
    "time"
)

func main() {
    temp := 0
    t1 := time.Now()
    for i := 0; i < 100000; i++ {
        for j := 0; j < 10000; j++ {
            temp++
        }
    }
    fmt.Println(temp)
    t2 := time.Now()
    fmt.Println(t2.Sub(t1))

}

获取指定时间前的时间

// 获取50秒前的时间,方式1
st,_ := time.ParseDuration("-50s")
fmt.Println("50秒前的时间:",time.Now().Add(st))
 
// 获取1分钟前的时间,n秒前则是time.Second * -n,方式2
t := time.Now().Add(time.Minute * -1) 
fmt.Println("一分钟前的时间:",t)
 
//获取1小时前的时间
sth,_ := time.ParseDuration("-1h")
fmt.Println("1小时前的时间:",time.Now().Add(sth))
 
// 获取2天前的时间
oldTime := time.Now().AddDate(0, 0, -2)
 
//获取两个月前的时间
oldTime := time.Now().AddDate(0, -2, 0)

 获取指定时间后的时间

// 获取50秒后的时间,方式1
st,_ := time.ParseDuration("50s")
fmt.Println("50秒之后的时间:",time.Now().Add(st))
 
// 获取1分钟后的时间,n秒前则是time.Second * n,方式2
t := time.Now().Add(time.Minute * 1) 
fmt.Println("一分钟后的时间:",t)
 
//获取1小时后的时间
sth,_ := time.ParseDuration("1h")
fmt.Println("1小时之后的时间:",time.Now().Add(sth))
 
// 获取当前时间2天后的时间
newTime := time.Now().AddDate(0, 0, 2)
//newTime 的结果为时间time类型
 
//获取当前时间2月后的时间
newTime := time.Now().AddDate(0, 2, 0)

到此这篇关于Go获取两个时间点时间差的具体实现的文章就介绍到这了!

Golang 相关文章推荐
go 原生http web 服务跨域restful api的写法介绍
Apr 27 Golang
go结构体嵌套的切片数组操作
Apr 28 Golang
Golang全局变量加锁的问题解决
May 08 Golang
Golang生成Excel文档的方法步骤
Jun 09 Golang
再次探讨go实现无限 buffer 的 channel方法
Jun 13 Golang
K8s部署发布Golang应用程序的实现方法
Jul 16 Golang
Go 通过结构struct实现接口interface的问题
Oct 05 Golang
golang三种设计模式之简单工厂、方法工厂和抽象工厂
Apr 10 Golang
Golang日志包的使用
Apr 20 Golang
Golang并发工具Singleflight
May 06 Golang
Golang实现可重入锁的示例代码
May 25 Golang
Golang jwt身份认证
实现GO语言对数组切片去重
Apr 20 #Golang
Golang日志包的使用
Apr 20 #Golang
Golang获取List列表元素的四种方式
Apr 20 #Golang
Golang 对es的操作实例
Apr 20 #Golang
Golang 遍历二叉树
Apr 19 #Golang
Golang MatrixOne使用介绍和汇编语法
Apr 19 #Golang
You might like
一步一步学习PHP(1) php开发环境配置
2010/02/15 PHP
JoshChen_web格式编码UTF8-无BOM的小细节分析
2013/08/16 PHP
php实现事件监听与触发的方法
2014/11/21 PHP
简单谈谈 php 文件锁
2017/02/19 PHP
javascript椭圆旋转相册实现代码
2012/01/16 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
js 数值转换为3位逗号分隔的示例代码
2014/02/19 Javascript
一个网页标题title的闪动提示效果实现思路
2014/03/22 Javascript
jquery实现的一个简单进度条效果实例
2014/05/12 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
jQuery插件StickUp实现网页导航置顶
2015/04/12 Javascript
avalonjs制作响应式瀑布流特效
2015/05/06 Javascript
JS递归遍历对象获得Value值方法技巧
2016/06/14 Javascript
详解JavaScript中js对象与JSON格式字符串的相互转换
2017/02/14 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
详解React开发中使用require.ensure()按需加载ES6组件
2017/05/12 Javascript
vue里input根据value改变背景色的实例
2018/09/29 Javascript
webpack4之如何编写loader的方法步骤
2019/06/06 Javascript
jquery实现手风琴案例
2020/05/04 jQuery
vue实现轮播图帧率播放
2021/01/26 Vue.js
[00:58]他们到底在电话里听到了什么?
2017/11/21 DOTA
Python 文件和输入输出小结
2013/10/09 Python
Python中shape计算矩阵的方法示例
2017/04/21 Python
python实现简单的单变量线性回归方法
2018/11/08 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
Python小白垃圾回收机制入门
2020/06/09 Python
Python 实现简单的客户端认证
2020/07/29 Python
Python requests接口测试实现代码
2020/09/08 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
制作部班长职位说明书
2014/02/26 职场文书
个人批评与自我批评发言稿
2014/09/28 职场文书
2015年求职自荐信范文
2015/03/04 职场文书
祝酒词范文
2015/08/12 职场文书
如何使用注解方式实现 Redis 分布式锁
2022/07/23 Redis
GO中sync包自由控制并发示例详解
2022/08/05 Golang