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语言-在mac下brew升级golang
Apr 25 Golang
golang通过递归遍历生成树状结构的操作
Apr 28 Golang
go结构体嵌套的切片数组操作
Apr 28 Golang
解决go在函数退出后子协程的退出问题
Apr 30 Golang
再次探讨go实现无限 buffer 的 channel方法
Jun 13 Golang
go语言使用Casbin实现角色的权限控制
Jun 26 Golang
go select编译期的优化处理逻辑使用场景分析
Jun 28 Golang
Golang 语言控制并发 Goroutine的方法
Jun 30 Golang
golang中的struct操作
Nov 11 Golang
Golang 链表的学习和使用
Apr 19 Golang
Golang 实现 WebSockets 之创建 WebSockets
Apr 24 Golang
深入理解 Golang 的字符串
May 04 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语法(5)
2006/10/09 PHP
cmd下运行php脚本
2008/11/25 PHP
PHP提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
YII路径的用法总结
2014/07/09 PHP
PHP实现批量修改文件名的方法示例
2019/09/18 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
如何用javascript计算文本框还能输入多少个字符
2015/07/29 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
JavaScript实现数据类型的相互转换
2016/03/06 Javascript
js获取隐藏元素宽高的实现方法
2016/05/19 Javascript
jQuery插件编写步骤详解
2016/06/03 Javascript
详解ECharts使用心得总结
2016/12/06 Javascript
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
除Console.log()外更多的Javascript调试命令
2018/01/24 Javascript
浅谈Node 调试工具入门教程
2018/03/20 Javascript
vue2.0的虚拟DOM渲染思路分析
2018/08/09 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
Vue学习之组件用法实例详解
2020/01/06 Javascript
JavaScript组合设计模式--改进引入案例分析
2020/05/23 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
2020/09/21 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
python检查序列seq是否含有aset中项的方法
2015/06/30 Python
详解python实现线程安全的单例模式
2018/03/05 Python
将字典转换为DataFrame并进行频次统计的方法
2018/04/08 Python
Pytorch入门之mnist分类实例
2018/04/14 Python
python3+opencv3识别图片中的物体并截取的方法
2018/12/05 Python
Python Cookie 读取和保存方法
2018/12/28 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
2019/12/04 Python
美国存储和组织商店:The Container Store
2017/08/16 全球购物
Intimissimi德国网上商店:意大利知名内衣品牌
2018/04/03 全球购物
一套软件测试笔试题
2014/07/25 面试题
商务英语应届生自我鉴定
2013/12/08 职场文书
师德标兵事迹材料
2014/12/19 职场文书
银行中层干部培训心得体会
2016/01/11 职场文书
2016关于预防职务犯罪的心得体会
2016/01/21 职场文书