基本介绍 

在编程中,程序员会经常使用到日期相关的函数,如:统计某段代码执行花费的时间等

1,时间和日期相关函数,需要导入time包

2,time.Time类型用于表示时间

package main

import (
"fmt"
"time"
)

func main() {
now :=time.Now()
fmt.Printf("now=%v now type=%T\n",now, now)
}

Golang的时间和日期相关函数介绍_unix

3,如何获取到其它的日期信息

package main

import (
"fmt"
"time"
)

func main() {
now :=time.Now()
fmt.Printf("now=%v now type=%T\n",now, now)

fmt.Printf("年=%v\n",now.Year())
fmt.Printf("月=%v\n",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())
}

Golang的时间和日期相关函数介绍_字符串_02

4,格式化日期时间

方式1: 使用Printf或者Sprint

package  main

import (
"fmt"
"time"
)

func main(){
now :=time.Now()
fmt.Printf("now=%v now type=%T\n",now, now)
fmt.Printf("当前年月日 %d-%02d-%02d %02d:%02d:%02d \n",now.Year(),
now.Month(),now.Day(),now.Hour(),now.Minute(),now.Second())

dateStr := fmt.Sprintf("当前年月日 %d-%02d-%02d %02d:%02d:%02d \n",now.Year(),
now.Month(),now.Day(),now.Hour(),now.Minute(),now.Second())

fmt.Printf("dateStr=%v\n", dateStr)
}

Golang的时间和日期相关函数介绍_时间戳_03

方式二:使用time.Format()方法完成 

package main

import (
"fmt"
"time"
)

func main() {
now :=time.Now()
fmt.Printf("now=%v now type=%T\n",now, now)

fmt.Printf(now.Format("2006/01/02 15:04:05"))
fmt.Println()
fmt.Printf(now.Format("2006-01-02"))
fmt.Println()
fmt.Printf(now.Format("15:04:05"))
fmt.Println()
}

注:

2006/01/02 15:04:05 :这个字符串的各个数字是固定的,必须这样写

2006/01/02 15:04:05:这个字符串各个数字可以自由组合,这样可以按程序需求来返回时间和日期

5,时间的常量

    Nanosecond Duration = 1 //纳秒
Microsecond = 1000 * Nanosecond //微秒
Millisecond = 1000 * Microsecond //毫秒
Second = 1000 * Millisecond //秒
Minute = 60 * Second //分钟
Hour = 60 * Minute //小时

常量的作用:在程序中可以用于获取指定时间单位的时间,如100毫秒 1000 * time.Microsecond

6,结合Sleep来使用下时间常量

package main

import (
"fmt"
"time"
)

func main() {
i := 0
for {
i++
fmt.Println(i)
//time.Sleep(time.Second)
time.Sleep(time.Millisecond * 100)
if i == 10 {
break
}
}
}

7,time的Unix 和UnixNano的方法

package main

import (
"fmt"
"time"
)

func main() {
now := time.Now()
fmt.Printf("unix时间戳=%v nuixnano时间戳=%v \n", now.Unix(), now.UnixNano())
}

Golang的时间和日期相关函数介绍_格式化日期_04