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

说实话,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
}

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

(0)

相关推荐

  • golang在GRPC中设置client的超时时间

    超时 建立连接 主要就2函数Dail和DialContext. // Dial creates a client connection to the given target. func Dial(target string, opts ...DialOption) (*ClientConn, error) { return DialContext(context.Background(), target, opts...) } func DialContext(ctx context.Cont

  • golang时间处理工具箱now的使用详解

    golang不像C#,Java这种高级语言,有丰富的语法糖供开发者很方便的调用.所以这便催生出很多的开源组件,通过使用这些第三方组件能够帮助我们在开发过程中少踩很多的坑. 时间处理是所有语言都要面对的一个问题,parse根据字符串转为date类型,tostring()将date类型转为定制化的字符串. 在实际使用过程中,parse的使用有一种不是很舒服的方法. 上源码 time1, _ := time.Parse("2006-01-02", "2020-02-22"

  • golang time包做时间转换操作

    Time类型 Now方法表示现在时间. func Date(year int, month Month, day, hour, min, sec, nsec int, loc *Location) Time 返回现在的时间, func (t Time) Unix() int64将时间转换为unix时间戳,因为duration的限制,所以应该只能计算从1970年开始的250年左右 func Unix(sec int64, nsec int64) Time将时间戳转化为Time对象,看上去相似,只不

  • golang时间字符串和时间戳转换的案例

    1. 获取当前时间字符串和时间戳 package main import ( "fmt" "time" ) func main() { now := time.Now().UTC() // 显示时间格式: UnixDate = "Mon Jan _2 15:04:05 MST 2006" fmt.Printf("%s\n", now.Format(time.UnixDate)) // 显示时间戳 fmt.Printf(&quo

  • 解决golang时间字符串转time.Time的坑

    字符串转时间一定要通过 time.ParseInLocation 不能直接用Parse todayZero, _ := time.ParseInLocation("2006-01-02", "2019-01-01 15:22:22" time.Local) 如果用了Parse,二者就会存在8小时时间差!!!! 补充:golang 常用的日期方法和时区的坑 import( "time" ) 1.获取当前时间 time.Now(),返回类型:time

  • golang 实现tcp server端和client端,并计算RTT时间操作

    server端代码: package main import ( "fmt" "net" "log" "os" ) func main() { addr := "0.0.0.0:8787" tcpAddr, err := net.ResolveTCPAddr("tcp",addr) if err != nil { log.Fatalf("net.ResovleTCPAddr f

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

    说实话,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 /

  • python 时间戳与格式化时间的转化实现代码

    python 里面与时间有关的模块主要是 time 和 datetime 如果想获取系统当前时间戳:time.time() ,是一个float型的数据 获取系统当前的时间信息 : time.ctime() 是一个str类型的时间字符串,一般比较少用与开发中 如果想获得当前的普通日期字符串,可以简单的用str(datetime.date.today()) 还有就是时间和时间戳之间的相互转化(很常用): 日期到时间戳上的转换: import datetime import time t = date

  • Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果

    一.格式化时间 效果图: 实现上述界面代码如下: data() { return { loading: false, demandData: [], demandcount: 0,//总条数 skip: 0, //分页 pageSize: this.LIMIT, columns: [ { title: '编号', width: 60, align: 'center', type: 'index' }, { title: '标签名称', key: 'd_title' }, { title: '创建

  • 详解Golang中的各种时间操作

    需求 时间格式的转换比较麻烦,自己写了个工具,可以通过工具中的这些方法相互调用转成自己想要的格式,代码如下,后续有新的函数再添加 实现代码 package utils import "time" const ( TIMEFORMAT = "20060102150405" NORMALTIMEFORMAT = "2006-01-02 15:04:05" ) // 当前时间 func GetTime() time.Time{ return time.

  • JS获取时间的相关函数及时间戳与时间日期之间的转换

    时间戳和时间日期的转换是常见的操作,下面就通过代码实例介绍一下如何实现它们之间的相互转换. 在没学习本文之前先给大家介绍下javascript中Date()构造函数参数: 关于Date对象大家想必一定不陌生,使用Date()构造函数创建一个时间对象是最基本的操作了,例如: var theDate=new Date(); theDate.getDate(); 使用以上代码可以获取当前日期的天. 上面是对于Date()构造函数最简单的应用了,Date对象具有多种构造函数,下面简单列举如下: new

  • Vue.js 时间转换代码及时间戳转时间字符串

    Date.prototype.format = function(format){ var o = { "M+" : this.getMonth()+1, //month "d+" : this.getDate(), //day "h+" : this.getHours(), //hour "m+" : this.getMinutes(), //minute "s+" : this.getSeconds()

  • layui实现把数据表格时间戳转换为时间格式的例子

    如下所示: <script type="text/javascript"> function createTime(v){ var date = new Date(v); var y = date.getFullYear(); var m = date.getMonth()+1; m = m<10?'0'+m:m; var d = date.getDate(); d = d<10?("0"+d):d; var h = date.getHour

  • python3 中时间戳、时间、日期的转换和加减操作

    1.当前时间戳转换为指定格式的日期 # -*- coding: utf-8 -*- # @Time : 2019/5/31 10:56 # @Author : 甄超锋 # @Email : 4535@sohu.com # @File : test.py # @Software: PyCharm import datetime import time # 使用time timeStamp = time.time() # 1559286774.2953627 timeArray = time.loc

  • 关于vue中的时间格式转化问题

    目录 vue时间格式转化问题 1. 效果图 2. 需求:前台展示一律用的时间规格 vue转换时间格式(适用于uni-app) 1. 前端获取实时时间 2. 运用过滤器 vue时间格式转化问题 1. 效果图 2. 需求:前台展示一律用的时间规格 yyyy-MM-dd HH:mm:SS,即要求月日时分秒小于两位数的都要补0,这样显得整体化一.所以下面就是专门对月日时分秒小于10时做补0的处理,实际刚开始想到的就是直接挨个判断月日时分秒<10时,直接拼接0的想法,被同事打断了,这个方法太繁琐了.所以发

  • Python处理时间戳和时间计算等的脚本分享

    由于实际需要,简要写了个小脚本,并打包生成exe,供无网络环境下使用 脚本1:显示当前时间与时间戳,以及10分钟后的时间与时间戳 # -*- coding: utf-8 -*- """ Project: pyWorkspace Creator: Administrator -haochuang Create time: 2021-05-12 09:24 IDE: PyCharm Introduction: """ import time impo

随机推荐