golang时间和日期相关函数

一、常用函数

时间和时期相关函数,需要导入time包。time.Time,用于表示时间
1. 获取当前时间的方法

now := time.Now() // now的类型就是time.Time

2. 如何获取到其他的日期信息

package main

import (
	"fmt"
	"time"
)

func main() {
	now := time.Now() // now的类型就是time.Time

	fmt.Println("当前年:", now.Year())
	fmt.Println("当前月:", now.Month())
	fmt.Println("当前月:", int(now.Month()))
	fmt.Println("当前年:", now.Day())
	fmt.Println("当前时:", now.Hour())
	fmt.Println("当前分:", now.Minute())
	fmt.Println("当前秒:", now.Minute())
}

输出结果:

当前年: 2021
当前月: May
当前月: 5
当前年: 13
当前时: 20
当前分: 47
当前秒: 47

3. 格式化日期和时间 Format("2006/01/02 15:04:05")

	now := time.Now() // now的类型就是time.Time

	fmt.Println("当前时间:", now.Format("2006/01/02 15:04:05"))
	fmt.Println("当前年月日:", now.Format("2006-01-02"))
	fmt.Println("时分秒:", now.Format("15:04:05"))

输出结果:

当前时间: 2021/05/13 20:59:16
当前年月日: 2021-05-13
时分秒: 20:59:16

说明:

  • "2006/01/02 15:04:05"这个字符串的各个数字是固定的,必须这么写
  • "2006/01/02 15:04:05"这个字符串各个数字可以自由组合,这样可以按程序需求来返回日期和时间

4. 时间的常量
在程序中用于获取指定时间单位的时间,比如100毫秒:100 * time.Millisecond

type Duration int64
const (
    Nanosecond  Duration = 1 // 纳秒
    Microsecond          = 1000 * Nanosecond // 微秒
    Millisecond          = 1000 * Microsecond // 毫秒
    Second               = 1000 * Millisecond // 秒
    Minute               = 60 * Second // 分钟
    Hour                 = 60 * Minute // 小时
)
  1. 休眠:time.Sleep(d Duration)
	now1 := time.Now()
	fmt.Println("休眠前时间:", now1.Format("2006/01/02 15:04:05"))
	time.Sleep(2 * time.Second) // 休眠2秒
	now2 := time.Now()
	fmt.Println("休眠后时间:", now2.Format("2006/01/02 15:04:05"))

输出结果:

休眠前时间: 2021/05/13 21:22:25
休眠后时间: 2021/05/13 21:22:27

6. 获取当前的unix时间戳和unixnano时间戳(作用是可以获取随机数字)
func (t Time) Unix() int64
func (t Time) UnixNano() int64

	now := time.Now()
	fmt.Println("Unix时间戳:", now.Unix(), "UnixNano时间戳:", now.UnixNano())

输出结果:

Unix时间戳: 1620912706 UnixNano时间戳: 1620912706511741900

二、案例

编写一段代码,统计某个方法执行的时间

package main

import (
	"fmt"
	"time"
)

func test() {

	time.Sleep(3 * time.Second)
}

func main() {
	start := time.Now().Unix()
	test()
	end := time.Now().Unix()
	fmt.Println("test()消耗的时间:", end-start)
}

输出结果:

test()消耗的时间: 3
posted @ 2021-05-13 21:48  若雨蚂蚱  阅读(151)  评论(0编辑  收藏  举报