golang 实现时间戳和时间的转化


Posted in Golang onMay 07, 2021

说实话,golang的时间转化还是很麻烦的,最起码比php麻烦很多,上码好好学学一下

package main 
import (
   "time"
   "fmt"
)
 
func main() {
   //获取当前时间
   t := time.Now() //2018-07-11 15:07:51.8858085 +0800 CST m=+0.004000001
   fmt.Println(t)
 
   //获取当前时间戳
   fmt.Println(t.Unix()) //1531293019
 
   //获得当前的时间
   fmt.Println(t.Uninx().Format("2006-01-02 15:04:05"))  //2018-7-15 15:23:00
 
   //时间 to 时间戳
   loc, _ := time.LoadLocation("Asia/Shanghai")        //设置时区
   tt, _ := time.ParseInLocation("2006-01-02 15:04:05", "2018-07-11 15:07:51", loc) //2006-01-02 15:04:05是转换的格式如php的"Y-m-d H:i:s"
   fmt.Println(tt.Unix())                             //1531292871
 
   //时间戳 to 时间
   tm := time.Unix(1531293019, 0)
   fmt.Println(tm.Format("2006-01-02 15:04:05")) //2018-07-11 15:10:19
 
   //获取当前年月日,时分秒
   y := t.Year()                 //年
   m := t.Month()                //月
   d := t.Day()                  //日
   h := t.Hour()                 //小时
   i := t.Minute()               //分钟
   s := t.Second()               //秒
   fmt.Println(y, m, d, h, i, s) //2018 July 11 15 24 59
}

补充:Golang 13位时间戳转time.Time

时间戳:

时间戳是使用数字签名技术产生的数据,签名的对象包括了原始文件信息、签名参数、签名时间等信息。时间戳系统用来产生和管理时间戳,对签名对象进行数字签名产生时间戳,以证明原始文件在签名时间之前已经存在。

mysql类型timestamp(时间戳)和datetime(时间)差别:

timestamp占用4个字节;

datetime占用8个字节;

timestamp范围1970-01-01 00:00:01.000000 到 2038-01-19 03:14:07.999999;

datetime是1000-01-01 00:00:00.000000 到 9999-12-31 23:59:59.999999;

时间戳格式:

10位数的时间戳是以 秒 为单位,如:1530027865

13位数的时间戳是以 毫秒 为单位, 如:1530027865231

19位数的时间戳是以 纳秒 为单位,如:1530027865231834600

Golang获取当前时间或时间戳

// string
time.Now().Format("2006-01-02 15:04:05")
// time.Time
time.Now()
// int64 时间戳,默认10位,单位:秒
time.Now().UnixNano()

13位时间戳转时间格式

func UnixToTime(e string) (datatime time.Time, err error) {
 data, err := strconv.ParseInt(e, 10, 64)
 datatime = time.Unix(data/1000, 0)
 return
}

时间转13位时间戳

func TimeToUnix(e time.Time) int64 {
 timeUnix, _ := time.Parse("2006-01-02 15:04:05", e.Format("2006-01-02 15:04:05"))
 return timeUnix.UnixNano() / 1e6
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Golang 相关文章推荐
彻底理解golang中什么是nil
Apr 29 Golang
golang goroutine顺序输出方式
Apr 29 Golang
解决golang post文件时Content-Type出现的问题
May 02 Golang
Golang Gob编码(gob包的使用详解)
May 07 Golang
go语言基础 seek光标位置os包的使用
May 09 Golang
Golang的继承模拟实例
Jun 30 Golang
Go语言应该什么情况使用指针
Jul 25 Golang
详解Golang如何优雅的终止一个服务
Mar 21 Golang
如何解决goland,idea全局搜索快捷键失效问题
Apr 03 Golang
golang定时器
Apr 14 Golang
GO语言异常处理分析 err接口及defer延迟
Apr 14 Golang
Golang Gob编码(gob包的使用详解)
May 07 #Golang
go mod 安装依赖 unkown revision问题的解决方案
解决golang 关于全局变量的坑
May 06 #Golang
Goland使用Go Modules创建/管理项目的操作
解决goland 导入项目后import里的包报红问题
Go 自定义package包设置与导入操作
goland 设置project gopath的操作
You might like
php数据库密码的找回的步骤
2011/01/12 PHP
PHP之预定义接口详解
2015/07/29 PHP
PHP  Yii清理缓存的实现方法
2016/11/10 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
C#中使用迭代器处理等待任务
2015/07/13 Javascript
jQuery进行组件开发完整实例
2015/12/15 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
js将键值对字符串转为json字符串的方法
2018/03/30 Javascript
javascript显示动态时间的方法汇总
2018/07/06 Javascript
React Hooks的深入理解与使用
2018/11/12 Javascript
在node中使用jwt签发与验证token的方法
2019/04/03 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
vue中实现高德定位功能
2019/12/03 Javascript
Vant picker 多级联动操作
2020/11/02 Javascript
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
python mysqldb连接数据库
2009/03/16 Python
selenium+python设置爬虫代理IP的方法
2018/11/29 Python
Python3从零开始搭建一个语音对话机器人的实现
2019/08/23 Python
pytorch读取图像数据转成opencv格式实例
2020/06/02 Python
PyQT5 实现快捷键复制表格数据的方法示例
2020/06/19 Python
Css3实现无缝滚动防抖
2020/09/14 HTML / CSS
海信商城:海信电视、科龙空调、容声冰箱官方专卖
2017/02/07 全球购物
英国殿堂级有机护肤品牌:Rodial
2017/04/17 全球购物
UNIX文件系统常用命令
2012/05/25 面试题
倡议书格式范文
2014/04/14 职场文书
公司新人试用期自我评价
2014/09/17 职场文书
教师作风整顿个人剖析材料
2014/10/10 职场文书
幼儿园老师新年寄语2015
2014/12/08 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书
2016银行求职自荐信
2016/01/28 职场文书
导游词幽默开场白
2019/06/26 职场文书
MySQL通过binlog恢复数据
2021/05/27 MySQL
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
2021/05/28 Python
MySQL数据库如何给表设置约束详解
2022/03/13 MySQL
Mysql 如何合理地统计一个数据库里的所有表的数据量
2022/04/18 MySQL