Go语言基础之time包详解

Stella981
• 阅读 433

点击上方“ Go语言进阶学习 ”,进行关注

回复“Go语言”即可获赠从入门到进阶共10本电子书

月落乌啼霜满天,江枫渔火对愁眠。

前言

一寸光阴一寸金,时间难买寸光阴,时间,是个多么重要的东西。

同样,在我们的编程中,时间也依然占据着很大的一部分。

就像淘宝,客户下单需要记录时间,发货了需要记录时间,保质期多久需要推算时间,等等等等。

那我们一起来看看Go中是如何操作时间叭!

time.Now()

time.Now()返回的是一个Time类型。

相关代码如下

func main() {

执行结果

Go语言基础之time包详解

时间戳

时间戳:从北京时间1970年1月1日8点到现在时间的秒数,是一个int64类型。

相关代码

func main() {

执行结果

Go语言基础之time包详解

到目前为止已经有1603698727秒了,时间不等人呐!

纳秒时间戳

一般情况下我们使用的都是,但是时间戳还可以返回成纳秒,用的不多,了解就好。

代码

func main() {

执行结果

Go语言基础之time包详解

时间戳转Time


有时候别人给我们的是时间戳,我们需要反着转以下,时间戳->时间类型

需要用到的是time.Unix

代码

func main() {

执行效果

Go语言基础之time包详解

时间+


很多时候,我们拿到一个时间,我们需要向前或者向后推算一个月,或者几个小时,这就属于**时间+**。

在Go中,时间推算有俩函数,一个是Add,一个是AddDate,分别是+小时+天数

Add

代码

Add最大单位是小时,只能**+小时**

func main() {

执行结果

Go语言基础之time包详解

AddDate

AddDate就牛逼很多了,有三个参数,分别是年,月,日,根据需求加就行了。

代码

func main() {

执行结果

Go语言基础之time包详解

注意:上述不仅可以时间+,还可以时间-前面加负号就可以了。

Sub

Sub通常用在计算某一段代码执行用了多久时间,最后时间-最开始时间=执行时间

代码

func main() {

执行结果

Go语言基础之time包详解

定时器


默认的定时器挺Low的,只有最简单的功能,了解就好。

示例:每隔一秒执行次相关代码。

代码

func main() {

执行结果

Go语言基础之time包详解

时间格式化(time -> string)


Go语言的时间格式化,有点逗,跟其他语言都不一样,没有**%Y%M**之类的写法。

记住一个时间2006-01-02 15:04:05.000 Mon Jan/PM Mon Jan

分别对应年-月-日 时:分:秒 24/12

当前,同其语言一样,可以只格式化年-月-日等。

格式时间需要用到Format方法。

代码

func main() {

执行结果

Go语言基础之time包详解

字符串格式化时间(string -> time)


将拿到的时间字符串转成时间类型。

代码

func main() {

执行结果

Go语言基础之time包详解

总结


到这终于结束了,关于Go时间的操作基本就上述这么多。

当然,这是自带的包的功能有这么多,对于平常使用基本够用。

其实主要重要的是AddAddDate时间 -> 格式化字符串字符串 -> 时间,这些在平常中使用频率最高。

如果在操作过程中有任何问题,记得下面留言,我们看到会第一时间解决问题。

如果你觉得文章还可以,记得点赞留言支持我们哈。感谢你的阅读,有问题请记得在下方留言噢~

想学习更多关于Python的知识,可以参考学习网址:http://pdcfighting.com/,点击阅读原文,可以直达噢~

**********---**--****-------------- End **********---**--****--------------

Go语言基础之time包详解

往期精彩文章推荐:

Go语言基础之time包详解

欢迎大家点赞,留言,转发,转载,****感谢大家的相伴与支持

想加入Go学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

本文分享自微信公众号 - Go语言进阶学习(gh_dced3d6523fb)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
刚刚好 刚刚好
2个月前
css问题
1、 在IOS中图片不显示(给图片加了圆角或者img没有父级) <div<img src""/</div div {width: 20px; height: 20px; borderradius: 20px; overflow: h
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录 问题 用navicat导入数据时,报错: 原因这是因为当前的MySQL不支持datetime为0的情况。 解决修改sql\mode: sql\mode:SQL Mode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。 全局s
Karen110 Karen110
1年前
​一篇文章总结一下Python库中关于时间的常见操作
前言本次来总结一下关于Python时间的相关操作,有一个有趣的问题。如果你的业务用不到时间相关的操作,你的业务基本上会一直用不到。但是如果你的业务一旦用到了时间操作,你就会发现,淦,到处都是时间操作。。。所以思来想去,还是总结一下吧,本次会采用类型注解方式。 time包import time 时间戳 从1970年1月1日00:00:00标准时区诞生到现在
晴空闲云 晴空闲云
2个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。 盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
艾木酱 艾木酱
1个月前
快速入门|使用MemFire Cloud构建React Native应用程序
> MemFire Cloud是一款提供云数据库,用户可以创建云数据库,并对数据库进行管理,还可以对数据库进行备份操作。它还提供后端即服务,用户可以在1分钟内新建一个应用,使用自动生成的API和SDK,访问云数据库、对象存储、用户认证与授权等功能,可专
Stella981 Stella981
1年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有`time`,和`datetime`两个,本文先说`time`模块。 ### 关于时间戳的几个概念 * 时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。 * 时间元组(`struct_time`),包含9个元素。  `time.struct_time(tm_y
Wesley13 Wesley13
1年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表: **时辰** **时间** **24时制** 子时 深夜 11:00 - 凌晨 01:00 23:00 - 01 :00 丑时 上午 01:00 - 上午 03:00 01:00 - 03 :00 寅时 上午 03:00 - 上午 0
Wesley13 Wesley13
1年前
PHP中的NOW()函数
是否有一个PHP函数以与MySQL函数`NOW()`相同的格式返回日期和时间? 我知道如何使用`date()`做到这一点,但是我问是否有一个仅用于此的函数。 例如,返回: 2009-12-01 00:00:00 * * * ### #1楼 使用此功能: function getDatetimeNow() {
Wesley13 Wesley13
1年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
#### 背景描述 # Time: 2019-01-24T00:08:14.705724+08:00 # User@Host: **[**] @ [**] Id: ** # Schema: sentrymeta Last_errno: 0 Killed: 0 # Query_time: 0.315758 Lock_
helloworld_28799839 helloworld_28799839
2个月前
常用知识整理
# Javascript ## 判断对象是否为空 ```js Object.keys(myObject).length === 0 ``` ## 经常使用的三元运算 > 我们经常遇到处理表格列状态字段如 `status` 的时候可以用到 ``` vue