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 相关文章推荐
go原生库的中bytes.Buffer用法
Apr 25 Golang
golang http使用踩过的坑与填坑指南
Apr 27 Golang
Golang中interface{}转为数组的操作
Apr 30 Golang
解决golang结构体tag编译错误的问题
May 02 Golang
go select编译期的优化处理逻辑使用场景分析
Jun 28 Golang
入门学习Go的基本语法
Jul 07 Golang
Go语言基础函数基本用法及示例详解
Nov 17 Golang
Go语言读取txt文档的操作方法
Jan 22 Golang
Go 中的空白标识符下划线
Mar 25 Golang
Go语言 详解net的tcp服务
Apr 14 Golang
golang用type-switch判断interface的实际存储类型
Apr 14 Golang
Go gorilla securecookie库的安装使用详解
Aug 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 split汉字
2009/06/05 PHP
php 数组处理函数extract详解及实例代码
2016/11/23 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
Nigma vs Alliance BO5 第三场2.14
2021/03/10 DOTA
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
2011/05/10 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
JavaScript对象学习经验整理
2013/10/12 Javascript
js生成随机数之random函数随机示例
2013/12/20 Javascript
JavaScript基础函数整理汇总
2015/01/30 Javascript
jQuery实现简单的日期输入格式化控件
2015/03/12 Javascript
JavaScript中数组添加值和访问值常见问题
2016/02/06 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
2016/07/28 Javascript
JavaScript基于对象去除数组重复项的方法
2016/10/09 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
2016/11/12 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
2016/12/17 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
Ionic3实现图片瀑布流布局
2017/08/09 Javascript
vue路由嵌套的SPA实现步骤
2017/11/06 Javascript
vuex 动态注册方法 registerModule的实现
2019/07/03 Javascript
vue中@change兼容问题详解
2019/10/25 Javascript
vue监听浏览器原生返回按钮,进行路由转跳操作
2020/09/09 Javascript
[31:01]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS Orenda
2014/05/23 DOTA
[48:31]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第二场 12.17
2020/12/19 DOTA
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
2015/04/25 Python
利用python爬取斗鱼app中照片方法实例
2017/12/03 Python
Python实现的HMacMD5加密算法示例
2018/04/03 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
2020/06/27 Python
python3中确保枚举值代码分析
2020/12/02 Python
全球立体声:World Wide Stereo
2018/09/29 全球购物
法国春天百货官网:Printemps.com
2020/06/29 全球购物
编程输出如下图形
2013/11/24 面试题
英语系本科生个人求职信
2013/09/21 职场文书
macos系统如何实现微信双开? mac登录两个微信以上微信的技巧
2022/07/23 数码科技