Go 学习笔记:标准库之 time 包

Go 有很多内置的标准库,里面封装了很多开发中会用到的一些函数,使用这些函数可以简化代码,提高开发效率。time 包就是其中之一,它里面封装了处理日期时间需要用到的一些功能。

今天因为要做一个功能,稍微了解了一下 time 包,官方文档,暂时先将这个功能里面需要用到的一些方法记录下来,以后碰到其他的知识再继续往这里添加。

需求是这样的,管理后台要做几个功能,分别为:按时间范围查询数据库、快速查昨天的数据、快速查今天的数据,要实现这几个功能,就必然需要按某个时间范围去数据库中查数据,下面就简单介绍下处理方法。

获取当前时间及当天的其他时间点

now := time.Now()

这个很简单,获取到当前时间 now 后就可以对 now 进行操作,来修改这个时间,比如说获取当天的零点,可以这样

today := time.Date(now.Year(),now.Month(),now.Day(),0,0,0,0,time.Local)

这样就直接将时间设置为了当天的零点,同样的,要获得其他的时间点,修改相应的参数即可,最后一个参数一般传入自己当地的时区即可。比如上面的 time.Local

获取其他日期

拿到了今天的时间后,可以通过 AddDate 这个函数来增加或减少时间,比如我上面获得了当天的零点,现在要获得昨天的零点,可以这样

yesterday := today .AddDate(0,0,-1)

把日期减去一天,就是昨天的时间了。

获取时间戳

如果需要将时间转化为时间戳,需要使用 Unix 这个方法

begin := yesterday.Unix()

时间的格式化

如果需要将一个时间字符串格式化为一个时间类型,可以用下面的方法

ttt,err := time.ParseInLocation("2006-01-02 15:04:05",val,time.Local)

“2006-01-02 15:04:05” 是 Go 语言的初始时间,这个字符串表示的是需要格式化成的时间格式为 “yyyy-mm-dd hh:MM:ss” , val 为要格式化的时间(string类型),最后为时区。

time 包的简要介绍就先到这里了,上面的都是平时用的比较多的一些方法,如果觉得 time 包不够方便,还有一些第三方封装的包可以用,比如这个

猜你喜欢

转载自blog.csdn.net/zgh0711/article/details/78964822
今日推荐