何为时间戳:

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

时间戳格式种类:

  • 10位数的时间戳是以 秒 为单位,如:1530027865
  • 13位数的时间戳是以 毫秒 为单位, 如:1530027865231
  • 19位数的时间戳是以 纳秒 为单位,如:1530027865231834600

代码

/*
@Time : 2022/11/8 14:52
@Author : zic
@File : time
@Software: GoLand
@blog : https://www.cnblogs.com/zichliang
*/
package main

import (
	"fmt"
	"strconv"
	"time"
)

func main() {
	//获取当前时间 并格式化
	t := time.Now()
	fmt.Println(t.Format("2006-01-02 15:04:05"))

	//获取当前时间戳
	t = time.Now()
	fmt.Println(t.Unix()) //1531293019

	//时间戳转换为时间
	tm := time.Unix(1667889978, 0)
	fmt.Println(tm.Format("2006-01-02 15:04:05"))

	//时间转换为时间戳
	timeUnix, _ := time.Parse("2006-01-02 15:04:05", "2022-11-08 14:46:18")
	fmt.Println(timeUnix.Unix())

	// 13位时间戳转换成时间
	data, _ := strconv.ParseInt(strconv.Itoa(1667888972000), 10, 64)
	nowTime := time.Unix(data/1000, 0).Format("2006-01-02 15:04:05")
	fmt.Println(nowTime) //2022-11-08 14:29:32

	// (标准时间 2022-11-08 14:29:32 )时间转13位时间戳
	timeUnix, _ = time.Parse("2006-01-02 15:04:05", nowTime)
	fmt.Println(timeUnix.UnixNano() / 1e6) // 1667917772000

	// 非标准时间 转13位时间戳
	formatTime := "2022-11-08"
	ft, _ := time.Parse("2006-01-02", formatTime)
	fmt.Println((ft.UTC().Unix() - 8*3600) * 1000) // 10位就不用乘1000 其实感觉有更好的方法 ....

}

原文地址:http://www.cnblogs.com/zichliang/p/16869733.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性