「有问必答」Gopher如何优雅的对时间进行格式化?

昨天 交流群 关于「Go如何优雅地对时间进行格式化?」展开了讨论:,图片,图片,如何在不循环的情况下,把列表数据结构体的时间修改为咱们习惯的格式,而不是UTC模式,我们要实现的效果如下:,好了,通过引入上面的神器就解决了我们的问题。,我们再深入理解一下time包的使用:,time包提供了时间的显示和测量用的函数。日历的计算采用的是公历。,time.Time类型表示时间。我们可以通过time.Now()函数获取当前的时间对象,然后获取时间对象的年月日时分秒等信息。示例代码如下:,时间戳是自1970年1月1日(08:00:00GMT)至当前时间的总毫秒数。它也被称为Unix时间戳(UnixTimestamp)。,基于时间对象获取时间戳的示例代码如下:,使用time.Unix()函数可以将时间戳转为时间格式。,time.Duration是time包定义的一个类型,它代表两个时间点之间经过的时间,以纳秒为单位。time.Duration表示一段时间间隔,可表示的最长时间段大约290年。,time包中定义的时间间隔类型的常量如下:,例如:time.Duration表示1纳秒,time.Second表示1秒。,func (t Time) Add(d Duration) Time 举个例子,求一个小时之后的时间:,求两个时间之间的差值:,返回一个时间段t-u。如果结果超出了Duration可以表示的最大值/最小值,将返回最大值/最小值。要获取时间点t-d(d为Duration),可以使用t.Add(-d)。,判断两个时间是否相同,会考虑时区的影响,因此不同时区标准的时间也可以正确比较。本方法和用t==u不同,这种方法还会比较地点和时区信息。,如果t代表的时间点在u之前,返回真;否则返回假。,如果t代表的时间点在u之后,返回真;否则返回假。,使用time.Tick(时间间隔)来设置定时器,定时器的本质上是一个通道(channel)。,时间类型有一个自带的方法Format进行格式化,需要注意的是Go语言中格式化时间模板不是常见的Y-m-d H:M:S而是使用Go的诞生时间2006年1月2号15点04分(记忆口诀为2006 1 2 3 4)。,也许这就是技术人员的浪漫吧~(当然,也有人说这是瞎搞~),补充:如果想格式化为12小时方式,需指定PM。,解析字符串格式的时间,本文转载自微信公众号「 程序员升级打怪之旅」,作者「王中阳Go」,可以通过以下二维码关注。,「有问必答」Gopher如何优雅的对时间进行格式化?,转载本文请联系「 程序员升级打怪之旅」公众号。

文章版权声明

 1 原创文章作者:cmcc,如若转载,请注明出处: https://www.52hwl.com/26511.html

 2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈

 3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)

 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年6月23日
下一篇 2023年7月15日