本系列教程的代码已上传至github: https://github.com/xinxing0913/xinxing-golang-useful ,另外我的微信:xinxing0913。如果您感觉有用,不妨收藏或者关注一下,如果能分享一下那就最好了。
在我们熟悉了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语言中对时间的介绍,本节就介绍这么多,有什么问题可以在后面留言奥。