Golang常用的时间日期相关函数

package time

  • time.now()
    • 1、Now返回当前本地时间。
    • 2、通过now获取年月日时分秒
    • 3、格式化时间日期
    • 4、时间和日期函数练习

time包提供了时间的显示和测量用的函数。日历的计算采用的是公历。)

time.now()

1、Now返回当前本地时间。

func Now() Time

代码演示:

	// 返回当前本地时间
	now := time.Now()
	fmt.Printf("now = %v\n", now) // 输出本地时间
	fmt.Printf("now type = %T\n", now) // 输出now类型

输出:

now = 2020-11-29 16:04:17.130252 +0800 CST m=+0.003998901
now type = time.Time

2、通过now获取年月日时分秒

代码演示:

	// 通过now获取年月日时分秒
	fmt.Printf("年:%v\n", now.Year())       // 获取 年
	fmt.Printf("月:%v\n", int(now.Month())) // 获取 月
	fmt.Printf("月:%v\n", now.Day())        // 获取 日
	fmt.Printf("时:%v\n", now.Hour())       // 获取 时
	fmt.Printf("分:%v\n", now.Minute())     // 获取 分
	fmt.Printf("时:%v\n", now.Second())     // 获取 秒

输出:

年:2020
月:11
月:29
时:16
分:20
时:34

注意:英文的月份转换成数字,用int()函数即可!

3、格式化时间日期

利用format方法返回采用如下格式字符串的格式化时间。

“2006-01-02 15:04:05”

代码演示:

	// 格式化日期时间 “2006-1-2 15:04:05"
	fmt.Println(now.Format("2006-01-02 15:04:05"))
	fmt.Println(now.Format("2006/01/02 15:04:05")) // 返回格式化后的年月日时分秒
	fmt.Println(now.Format("2006/01/02")) // 返回格式化后的年月日
	fmt.Println(now.Format("15:04:05")) // 返回格式化后的时分秒
	fmt.Println(now.Format("2006")) // 返回格式化后的年

注:2006 01 02 15 04 05 数字顺序必须不变,但是至于中间用“-”连接还是用“/”连接 ,并没有特定要求。

至于为什么非要固定用“2006-01-02 15:04:05”来格式化日期,我查找了相关资料,发现其中一条比较靠谱的:
这是采用美国的日期时间格式化方式:01/02 03:04:05PM '06 -0700
1月2号下午3点4分5秒,06年,时区是-7,初衷是更便于记忆。

4、时间和日期函数练习

题目:编写一段代码来统计 函数test03执行的时间

func test03() {
     
	str := ""
	for i := 0; i < 100000; i++ {
     
		str += "hello" + strconv.Itoa(i)
	}

代码演示:

func test03() {
     
	str := ""
	for i := 0; i < 100000; i++ {
     
		str += "hello" + strconv.Itoa(i)
	}
}
func main() {
     
	now1 := time.Now()
	fmt.Println("开始时间为:", now1.Format("2006-01-02 15:04:05"))
	test03()
	now2 := time.Now()
	fmt.Println("结束时间为:", now2.Format("2006-01-02 15:04:05"))
	time := now2.Sub(now1)
	fmt.Println("这段代码的运行时长为:", time)
}

输出结果:

开始时间为: 2020-12-01 11:29:55
结束时间为: 2020-12-01 11:30:02
这段代码的运行时长为: 7.7712177s

注:Sub()函数两个时间点相减,获得时间差。

你可能感兴趣的:(Golang基础,go)