辛星go进阶指南第一篇:时间的处理

本系列教程的代码已上传至github: https://github.com/xinxing0913/xinxing-golang-useful ,另外我的微信:xinxing0913。如果您感觉有用,不妨收藏或者关注一下,如果能分享一下那就最好了。
【辛星go进阶指南第一篇:时间的处理】在我们熟悉了go语言的语法之后,假如让我们开始去用go去写项目,我们可能心里还是有点发虚,我该如何用go去连接数据库,我该如何用go去解析json,我该如何用go去读写文件,我该如何用go去作为爬虫抓取数据,作为一个后端开发者,这些在我们项目中出现的频率还是蛮高的。
也正是出于这个目的,我想整理一些编程中常用的代码段,来帮助我们用go快速上手,从而可以尽快的熟悉我们常用的操作。本节我们要介绍的就是对时间方面的处理。在平时的开发中,我们经常需要记录操作时间,然后把它展示给最终的用户,我们来看一下,我们用go如何来实现这些功能。
我们可以引入go语言的time模块来实现对时间的操作,我们可以用time.Now()来获取当前的时间,然后我们可以用Year()、Month()、Hour()等来获取具体的时间信息,我们还可以用Unix()来获取时间戳。
不过在我们用Format()方法来格式化时间的时候,需要说明的是,我们必须用"2006-01-02 15:04:05"这个时间,这个是go语言的诞生时间,算是一个比较有纪念意义的时间点。其实这个时间也比较好记,也就是6-1-2-3-4-5,第一个6是2006年,然后1-2是1月2号,3-4-5是下午3点4分5秒。
在介绍了基础的信息后,我们还是通过代码来进行展示吧,下面是具体的代码内容:

package main import ( "fmt" "time" )func main() { func1() func2() func3() func4() }// 转换为时间戳 func func1() { // 获取当前时间的时间戳 fmt.Println("当前时间的时间戳:", time.Now().Unix()) // 获取特定时间的时间戳 my_time, _ := time.Parse("2006-01-02 15:04:05", "2008-08-08 20:00:00") fmt.Println("北京奥运会开始的时间戳:", my_time.Unix()) }// 打印格式化的时间 func func2() { // 打印全格式 fmt.Println("格式一:", time.Now().Format("2006-01-02 15:04:05")) // 只打印年月日 fmt.Println("格式二:", time.Now().Format("2006-01-02")) // 只打印时分秒 fmt.Println("格式三:", time.Now().Format("15:04:05")) // 打印年月日和小时 fmt.Println("格式四:", time.Now().Format("2006-01-02 15")) // 用斜线的方式打印 fmt.Println("格式五:", time.Now().Format("2006/01/02 15/04/05")) }// 输出当前星期几 func func3() { // 输出今天星期几 fmt.Println("今天是:", time.Now().Weekday()) }// 获取具体的时间单位 func func4() { now := time.Now() fmt.Println("当前的年份:", now.Year()) fmt.Println("当前的月份:", now.Month()) fmt.Println("当前的天数:", now.Day()) fmt.Println("当前的小时:", now.Hour()) fmt.Println("当前的分钟:", now.Minute()) fmt.Println("当前的秒数:", now.Second()) }

下面是执行结果,如下所示:
当前时间的时间戳: 1517854719 北京奥运会开始的时间戳: 1218225600 格式一: 2018-02-06 02:18:39 格式二: 2018-02-06 格式三: 02:18:39 格式四: 2018-02-06 02 格式五: 2018/02/06 02/18/39 今天是: Tuesday 当前的年份: 2018 当前的月份: February 当前的天数: 6 当前的小时: 2 当前的分钟: 18 当前的秒数: 39

对于go语言中对时间的介绍,本节就介绍这么多,有什么问题可以在后面留言奥。

    推荐阅读