go时间/时间戳操作大全(小结)

基本操作

01: 获取当前时间

dateTime := time.Now()
fmt.Println(dateTime)

02: 获取年 月 日 时 分 秒 纳秒

year := time.Now().Year() //年

fmt.Println(year)

month := time.Now().Month() //月
fmt.Println(month)

day := time.Now().Day() //日
fmt.Println(day)

hour := time.Now().Hour() //小时
fmt.Println(hour)

minute := time.Now().Minute() //分钟
fmt.Println(minute)

second := time.Now().Second() //秒
fmt.Println(second)

nanosecond := time.Now().Nanosecond() //纳秒
fmt.Println(nanosecond)

03: 获取当前时间戳

timeUnix := time.Now().Unix()     //单位秒
timeUnixNano := time.Now().UnixNano() //单位纳秒

fmt.Println(timeUnix)
fmt.Println(timeUnixNano)

04: 将时间戳格式化

fmt.Println(time.Now().Format("2006-01-02 15:04:05"))

05: 时间戳转为go格式的时间

var timeUnix int64 = 1562555859
fmt.Println(time.Unix(timeUnix,0))

// 之后可以用Format 比如
fmt.Println(time.Unix(timeUnix, 0).Format("2006-01-02 15:04:05"))

06: str格式化时间转时间戳

t := time.Date(2014, 1, 7, 5, 50, 4, 0, time.Local).Unix()

fmt.Println(t)

时间的计算

01: 获取今天0点0时0分的时间戳

currentTime := time.Now()
startTime := time.Date(currentTime.Year(), currentTime.Month(), currentTime.Day(), 0, 0, 0, 0, currentTime.Location())
fmt.Println(startTime)
fmt.Println(startTime.Format("2006/01/02 15:04:05"))

02: 获取今天23:59:59秒的时间戳

currentTime := time.Now()
endTime := time.Date(currentTime.Year(), currentTime.Month(), currentTime.Day(), 23, 59, 59, 0, currentTime.Location())
fmt.Println(endTime)
fmt.Println(endTime.Format("2006/01/02 15:04:05"))

03: 获取1分钟之前的时间

m, _ := time.ParseDuration("-1m")
result := currentTime.Add(m)

fmt.Println(result)
fmt.Println(result.Format("2006/01/02 15:04:05"))

04: 获取1小时之前的时间

m, _ := time.ParseDuration("-1h")
result := currentTime.Add(m)
fmt.Println(result)
fmt.Println(result.Format("2006/01/02 15:04:05"))

05: 获取1分钟之后的时间

m, _ := time.ParseDuration("1m")
result := currentTime.Add(m)

fmt.Println(result)
fmt.Println(result.Format("2006/01/02 15:04:05"))

06: 获取1小时之后的时间

m, _ := time.ParseDuration("1h")
result := currentTime.Add(m)
fmt.Println(result)
fmt.Println(result.Format("2006/01/02 15:04:05"))

07 :计算两个时间戳

afterTime, _ := time.ParseDuration("1h")
result := currentTime.Add(afterTime)

beforeTime, _ := time.ParseDuration("-1h")
result2 := currentTime.Add(beforeTime)

m := result.Sub(result2)
fmt.Printf("%v 分钟 \n", m.Minutes())

h := result.Sub(result2)
fmt.Printf("%v小时 \n", h.Hours())

d := result.Sub(result2)
fmt.Printf("%v 天\n", d.Hours()/24)

08: 判断一个时间是否在一个时间之后

stringTime, _ := time.Parse("2006-01-02 15:04:05", "2019-12-12 12:00:00")
beforeOrAfter := stringTime.After(time.Now())

if true == beforeOrAfter {
  fmt.Println("2019-12-12 12:00:00在当前时间之后!")
} else {
  fmt.Println("2019-12-12 12:00:00在当前时间之前!")
}

09: 判断一个时间相比另外一个时间过去了多久

startTime := time.Now()
time.Sleep(time.Second * 5)

fmt.Println("离现在过去了:", time.Since(startTime))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • golang时间、时区、格式的使用方法

    前几天,因为需要实现海外服务端定时停机,涉及到时区的概念.网上搜索了一下,大部分都是谈time.Format中的Layout,非常不成体系,这里就简单总结一下其中的时间初始化.时区转化及格式转换. 开发中,我们对时间的使用是比较多的,其应用场景,按照使用概率,从大到小,通常是: 获取当前或数据库中存储的时间 比较两个时间点的先后 显示打印时间 时区转换 对应到go,也就是几个基本定义: 时间点与时间段:Time,Duration.好比MVC中的M. 时 区:Location,在时间转换上,好比是

  • go语言中时间戳格式化的方法

    本文实例讲述了go语言中时间戳格式化的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: var t int64 = time.Now().Unix() var s string = time.Unix(t, 0).Format("2006-01-02 15:04:05") println(s) 这方式比较特别,按照123456来记忆吧:01月02号 下午3点04分05秒 2006年 希望本文所述对大家的Go语言程序设计有所帮助.

  • Golang 函数执行时间统计装饰器的一个实现详解

    背景 最近在搭一个新项目的架子,在生产环境中,为了能实时的监控程序的运行状态,少不了逻辑执行时间长度的统计.时间统计这个功能实现的期望有下面几点: 实现细节要剥离:时间统计实现的细节不期望在显式的写在主逻辑中.因为主逻辑中的其他逻辑和时间统计的抽象层次不在同一个层级 用于时间统计的代码可复用 统计出来的时间结果是可被处理的. 对并发编程友好 实现思路 统计细节的剥离 最朴素的时间统计的实现,可能是下面这个样子: func f() { startTime := time.Now() logicSt

  • Golang 日期/时间包的使用详解

    golang 的日期时间包:time 的使用方式. time package 包含了 time.Time 时间对象 及 构建此时间对象的一些方法(time.Unix(), time.Parse()) golang 可精确到 nanosecond,故相应的函数返回值或参数都已纳秒为单位,我们可以借助time.ParseDuration(durationString string)友好的生成纳秒度量的时间跨度值 golang 的时间格式串Layout固定为 2006-01-02 15:04:05 g

  • go时间/时间戳操作大全(小结)

    基本操作 01: 获取当前时间 dateTime := time.Now() fmt.Println(dateTime) 02: 获取年 月 日 时 分 秒 纳秒 year := time.Now().Year() //年 fmt.Println(year) month := time.Now().Month() //月 fmt.Println(month) day := time.Now().Day() //日 fmt.Println(day) hour := time.Now().Hour(

  • JavaScript时间日期操作实例小结【5个示例】

    本文实例讲述了JavaScript时间日期操作.分享给大家供大家参考,具体如下: 本来想在网上找一些js实例来练练手,结果发现一本书<突破JavaScript编程实例五十讲>,看了下内容还不错,就下了下来: 后面又下了该书籍的源码,一看才发现这本书编的日期是2002年的,代码运行之后,有些代码可以运行,有些代码已经失效,原因是其所用的一些语言是已经淘汰的了. 其次就是由于是很早之前写的,那时候可能还没有css,js,html分离的想法,都是杂糅在一起的,看起来很不舒服. 还有就是,代码末尾都是

  • MySQL中时间函数操作大全

    目录 1. 获取系统当前时间 1.1. 获取 YYYY-MM-DD HH:mm:ss 1.2. 获取 YYYY-MM-DD 1.3. 获取 HH:mm:ss 2. 时间加减间隔函数 2.1. DATETIME 类型的加减 2.2. DATE 类型的加减 3. 两个时间的相减 3.1. DATE 类型相减 3.2. TIMESTAMP 类型 附:时间差 datediff() 总结 1. 获取系统当前时间 MySQL 版本为 5.7,详细的时间函数可以参考 MySQL 官方文档 在这里 1.1. 获

  • C#中DateTime的时间加减法操作小结

    在C#语言中,DateTime是用来表示时间的类,在C#的DateTime时间类中,提供了好像时间对象加减法操作,可用于某一个时间对象加减 多少年.加减多少个月.加减多少天.加减多少小时.加减多少分钟.加减多少秒等操作,此文将总结C#的DateTime类中的时间加减操作运算. (1)加减多少年操作:AddYears方法,具体参考C#使用AddYears方法获取当前时间20年后的时刻. C#使用AddYears方法获取当前时间20年后的时刻 2019-08-10 10:01 在C#语言中,Date

  • Java8 LocalDateTime极简时间日期操作小结

    简述 时间日期处理是平时工作中使用非常频繁的逻辑,Java8中提供的新的时间类LocalDateTime和LocalDate,使日期处理可以更简单. 友情提醒下,业务开发中最好默认使用LocalDateTime,因为LocalDateTime可以很方便的转换为LocalDate,但是LocalDate是不可以转为LocalDateTime的,会没有时分秒的数据!!! 本篇文章整理了常用的日期处理获取方式,并做简要说明. 能写一行的,就不写两行!文章会持续更新. 实例 1.获取当前年月日的字符串

  • Linux 常用命令操作大全(推荐收藏)

    1.系统信息 命令 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info的信息 cat /proc/interrupts 显示中断 cat /proc/memin

  • javascript系统时间设置操作示例

    本文实例讲述了javascript系统时间设置操作.分享给大家供大家参考,具体如下: <script> //myTime typeof //object window.onload = function() { var obody = document.body; //设置一个定时器,每过一秒钟,自动加一秒 setInterval(fnTime, 1000) //如果不执行这个函数,第一次打开时,会过一秒钟才出来 fnTime(); function fnTime() { var myTime

  • 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对象,看上去相似,只不

  • SQLServer 日期函数大全(小结)

    一.统计语句 1.--统计当前[>当天00点以后的数据] SELECT * FROM 表 WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT(Nvarchar, GETDATE(), 111) ORDER BY dateandtime DESC 2.--统计本周 SELECT * FROM 表 WHERE datediff(week,[dateadd],getdate())=0 3.--统计本月 SELECT * FROM 表 WHERE da

  • 易语言编程命令调用操作大全

    目录 一. 命令概述 二. 命令的格式 三. 命令的参数 四. 命令的返回值 五. 命令嵌套调用 六. 数组参数与数组返回值 七. 流程控制类命令 八. 算术运算命令 九. 逻辑比较 十. 位运算命令 十一.     数组操作命令 十二.     环境存取命令 十三.     拼音处理命令 十四.     文本操作命令 十五.     时间操作命令 十六.     数值转换命令 十八.     磁盘操作命令 二十.     系统处理命令 二十一.           媒体播放命令 二十二.   

随机推荐