天天看點

GO 語言 時間和日期

package main

import (
   "fmt"
   "time"
)

func main(){
   //go時間和日期
   //獲得時間日期需要導time包
   //time.Time類型,表示時間
   //擷取目前時間
   now := time.Now()
   fmt.Printf("type = %T,val=%v\n", now,now)
   //擷取其他的日期資訊
   fmt.Println("年=",time.Now().Year())
   fmt.Println("月=",time.Now().Month())
   //正常的是英文的,用int強轉成數字
   fmt.Println("月=",int(time.Now().Month()))
   fmt.Println("日=",time.Now().Day())
   fmt.Println("時=",time.Now().Hour())
   fmt.Println("分=",time.Now().Minute())
   fmt.Println("秒=",time.Now().Second())

   //格式化日期輸出
   //print---直接輸出
   //Sprint--傳回字元串
   //直接将以上的資訊格式化輸出
   fmt.Printf("年月日是:%d-%d-%d  %d:%d:%d",now.Year(),now.Month(),now.Day(),now.Hour(),now.Minute(),now.Second())
   date := fmt.Sprintf("年月日是:%d-%d-%d  %d:%d:%d",now.Year(),now.Month(),now.Day(),now.Hour(),now.Minute(),now.Second())
   fmt.Println(date)

   //第二種方法
   //獲得現在的時間,裡面的數字相當于參數,必須是2006,01,02等,‘-’可以變成‘/’
   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("15"))

   //時間常量
   const(
      Nanosecond  time.Duration =1 //納秒
      Microsecond = 1000 * Nanosecond //微秒
      Millisecond = 1000 * Microsecond //毫秒
      Second = 1000 * Millisecond //秒
      Minute = 60 * Second //分鐘
      Hour =60 * Minute //小時
   )
   //想獲得100毫秒 : 100 * time.Millisencond,隻能用整數乘機關

   //休眠
   //func.Sleep()
   //time.Sleep(100 * time.Millisecond) //休眠100毫秒

   //time.Now().Unix() : 獲得unix時間戳
   //time.Now().UnixNano  :獲得unix納秒時間戳
   fmt.Printf("unix時間戳:%v unixnano時間戳:%v",time.Now().Unix(),time.Now().UnixNano())
   
   //通過開始結束擷取時間可以得到程式執行的時間
   start := time.Now().Unix()
   //中間運作一些代碼或者函數
   end := time.Now().Unix()
   fmt.Printf("經過時間:",end - start)
}