前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >go时间/时间戳操作大全

go时间/时间戳操作大全

作者头像
李昊天
发布于 2019-07-10 02:33:54
发布于 2019-07-10 02:33:54
1.2K00
代码可运行
举报
运行总次数:0
代码可运行

基本操作

01: 获取当前时间

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dateTime := time.Now()
fmt.Println(dateTime)

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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: 获取当前时间戳

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
timeUnix := time.Now().Unix()         //单位秒
timeUnixNano := time.Now().UnixNano() //单位纳秒
    
fmt.Println(timeUnix)
fmt.Println(timeUnixNano)

04: 将时间戳格式化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fmt.Println(time.Now().Format("2006-01-02 15:04:05"))

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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格式化时间转时间戳

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
t := time.Date(2014, 1, 7, 5, 50, 4, 0, time.Local).Unix()

fmt.Println(t)

时间的计算

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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秒的时间戳

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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分钟之前的时间

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
m, _ := time.ParseDuration("-1m")
result := currentTime.Add(m)

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
m, _ := time.ParseDuration("-1h")
result := currentTime.Add(m)
fmt.Println(result)
fmt.Println(result.Format("2006/01/02 15:04:05"))

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
m, _ := time.ParseDuration("1m")
result := currentTime.Add(m)

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
m, _ := time.ParseDuration("1h")
result := currentTime.Add(m)
fmt.Println(result)
fmt.Println(result.Format("2006/01/02 15:04:05"))

07 :计算两个时间戳

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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: 判断一个时间是否在一个时间之后

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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: 判断一个时间相比另外一个时间过去了多久

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
startTime := time.Now()
time.Sleep(time.Second * 5)

fmt.Println("离现在过去了:", time.Since(startTime))
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一文了解 Go time 包的时间常用操作
在日常开发中,我们避免不了时间的使用,我们可能需要获取当前时间,然后格式化保存,也可能需要在时间类型与字符串类型之间相互转换等。本文将会对 Go time 包里面的常用函数和方法进行介绍。
陈明勇
2023/10/15
3260
一文了解 Go time 包的时间常用操作
【一Go到底】第二十四天---时间和日期函数
一、简介 因为日期和时间相关的函数存在于time包中,所以需要导入time包 time.Time 类型 ,表示时间 —> 详见案例解析 获取到当前时间的方法 —> now := time.Now() // now类型为 time.Time 格式化时间日期(详见案例) 法一 printf 法二 printf(now.FOrmat(“2006-01-02 15:04:05”)) 时间常量 :在程序中获得指定的时间单位的时间 const { Nanosecond Duration = 1 // 纳秒
指剑
2022/11/02
2840
转--Go时间格式化和类型互换操作
获取本地时间 // get current timestamp currentTime := time.Now().Local() //print time fmt.Println(currentTime) 指定格式的日期字符类型 // get current timestamp currentTime := time.Now().Local() //format Time, string type newFormat := currentTime.Format
李海彬
2018/03/20
1K0
Golang语言之字符串操作
转义字符 verb 含义 %d 十进制整数 %x,%X 大小写方式显式十六进制整数 %o 八进制整数 %b 二进制整数 %f,%g,%e 浮点数 %t 布尔值 %c 字符 %s 字符串 %q 带双引号的字符串 %v 内置格式内容 %T 类型 %p 内存地址 %% 字符% \n 换行 \t 缩进 ---- 文章内容主要以代码注释讲解相关知识点,代码阅读时请注意注释内容。 字符串与数值相互转换 package main import ( "fmt" "strconv" ) func ma
frank.
2020/07/23
8380
golang 中的时间处理
在 golang 中有一个很重要的 格式化时间的字符串 2006-01-02T15:04:05Z07:00 , 这个也是 golang 默认时间模版模版中的 time.RFC3339
老麦
2022/12/24
9080
golang 中的时间处理
Golang深入浅出之-Go语言中的时间与日期处理:time包详解
在Go语言中,time包提供了丰富而强大的功能来处理时间和日期,这对于构建精确计时、定时任务、日期格式化等应用场景至关重要。本文将深入浅出地探讨time包的核心概念、常见问题、易错点及其规避策略,并通过实用代码示例加深理解。
Jimaks
2024/04/29
1.8K0
Go语言3
字符串替换,对原始字符串str进行替换,把原始的old替换成new。 最后一个n是替换的次数,如果 n<0 则替换所有。一般就-1。
py3study
2020/01/07
5740
Go每日一库之8:cast(类型转换)
今天我们再来介绍 spf13 大神的另一个库cast。cast是一个小巧、实用的类型转换库,用于将一个类型转为另一个类型。 最初开发cast是用在hugo中的。
luckpunk
2023/09/14
5050
golang time相关总结
我们在php中对于时间操作主要是用时间戳和时间格式相互转换来计算,一般都是用时间戳进行计算,用时间格式进行展示,相对来说还是比较方便的。在golang中是有些区别的,主要是多了一个time对象,接下来我们来看一看
程序员小饭
2020/09/07
1.2K0
Go每日一库之12:carbon(日期和时间)
一线开发人员每天都要使用日期和时间相关的功能,各种定时器,活动时间处理等。标准库time使用起来不太灵活,特别是日期时间的创建和运算。carbon库是一个时间扩展库,基于 PHP 的carbon库编写。提供易于使用的接口。本文就来介绍一下这个库。
luckpunk
2023/09/19
3690
go的日期操作类使用-日常使用类库no.1
我这里接下来的几个文章主要是讲解日常的业务中或者代码中使用的类库,下面我们来看代码。
公众号-利志分享
2022/04/25
3370
time 用法大全
type Duration int64 持续时间表示两个瞬间之间的经过时间,为int64纳秒计数。
酷走天涯
2019/05/26
1.2K0
一文搞懂Go语言标准库,Time
在编程过程中,我们经常会用到与时间和日期相关的各种需求,下面来介绍 Go 语言中有关时间的一些基本用法。
微客鸟窝
2021/12/27
5190
Golang中time包用法--转
time包中包括两类时间:时间点(某一时刻)和时常(某一段时间) 1时间常量(时间格式化) const ( ANSIC = "Mon Jan _2 15:04:05 2006" UnixDate = "Mon Jan _2 15:04:05 MST 2006" RubyDate = "Mon Jan 02 15:04:05 -0700 2006" RFC822 = "02 Jan 06 15:04 MST" RFC822Z = "02
李海彬
2018/03/20
4.2K0
【Go 基础篇】Go语言日期与时间函数详解:时间的掌控与转化
Go语言是一种快速、简洁且高效的编程语言,它在处理日期与时间方面提供了丰富的标准库函数。本文将详细介绍Go语言中处理日期与时间的函数,涵盖常用的日期时间操作、格式化、时区转换等内容,并介绍time.Time结构体中的相关方法。
繁依Fanyi
2023/10/12
2.1K0
【Go 基础篇】Go语言日期与时间函数详解:时间的掌控与转化
Golang内置包-time
时间离我们仅在咫尺,无论是在编程中时间还是日常生活中对于时间的 记述都是离我们最近的,那么让我们一起来学习一下GoLang中内置包time。
PayneWu
2020/12/18
8710
go:处理时间
go中处理时间坑也挺多滴 时间转字符串 func TimeToStrLong(t time.Time) string { return t.Format("2006-01-02 15:04:05") } func TimeToStrShort(t time.Time) string { return t.Format("2006-01-02") } 字符串转时间(注意时区) // 谨慎使用time.Parse,它会直接转成utc时间 // ParseTime 字符串转时间, zone
超级大猪
2019/11/22
8940
Go语言标准库之time
获取时间戳 使用time.Now的time.Unix和time.UnixNano方法获取对应的时间戳
程序员同行者
2019/01/03
7710
『Go 内置库第一季:time』
时间的操作在项目中使用的非常频繁,比如说数据库中,经常有时间的操作,比如根据时间进行划分,统计之类的功能。
谢伟
2018/12/12
8790
Go之time包用法
time包提供了时间的显示和测量用的函数。日历的计算采用的是公历。 time 类型 type Time struct { // wall and ext encode the wall time seconds, wall time nanoseconds, // and optional monotonic clock reading in nanoseconds. // // From high to low bit position, wall encodes a 1-bit flag (hasMon
孤烟
2022/03/19
3850
相关推荐
一文了解 Go time 包的时间常用操作
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文