Go语言基础之time包详解

Stella981
• 阅读 821

点击上方“ 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源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
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:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Karen110 Karen110
3年前
​一篇文章总结一下Python库中关于时间的常见操作
前言本次来总结一下关于Python时间的相关操作,有一个有趣的问题。如果你的业务用不到时间相关的操作,你的业务基本上会一直用不到。但是如果你的业务一旦用到了时间操作,你就会发现,淦,到处都是时间操作。。。所以思来想去,还是总结一下吧,本次会采用类型注解方式。time包importtime时间戳从1970年1月1日00:00:00标准时区诞生到现在
Wesley13 Wesley13
3年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Stella981 Stella981
3年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
HIVE 时间操作函数
日期函数UNIX时间戳转日期函数: from\_unixtime语法:   from\_unixtime(bigint unixtime\, string format\)返回值: string说明: 转化UNIX时间戳(从19700101 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式举例:hive   selec
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_