成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Go語言基礎之Time包詳解

開發 后端
一寸光陰一寸金,時間難買寸光陰,時間,是個多么重要的東西。同樣,在我們的編程中,時間也依然占據著很大的一部分。

[[381120]]

 前言

一寸光陰一寸金,時間難買寸光陰,時間,是個多么重要的東西。

同樣,在我們的編程中,時間也依然占據著很大的一部分。

就像淘寶,客戶下單需要記錄時間,發貨了需要記錄時間,保質期多久需要推算時間,等等等等。

那我們一起來看看Go中是如何操作時間叭!

time.Now()

time.Now()返回的是一個Time類型。

相關代碼如下

  1. func main() { 
  2.     var nowTime = time.Now() 
  3.     fmt.Println(nowTime) 
  4.     var year = nowTime.Year()     //當前年份 
  5.     var month = nowTime.Month()   //當前月份 
  6.     var day = nowTime.Day()       //今天幾號 
  7.     var hour = nowTime.Hour()     //現在幾時 
  8.     var Minute = nowTime.Minute() //現在幾分 
  9.     var second = nowTime.Second() //現在幾秒 
  10.     fmt.Printf("當前年份:%v\n",year
  11.     fmt.Printf("當前月份:%v\n"month
  12.     fmt.Printf("幾號了:%v\n",day
  13.     fmt.Printf("幾時:%v\n",hour
  14.     fmt.Printf("幾分:%v\n",Minute
  15.     fmt.Printf("幾秒:%v\n"second

執行結果

 

時間戳

時間戳:從北京時間1970年1月1日8點到現在時間的秒數,是一個int64類型。

相關代碼

  1. func main() { 
  2.     var nowTime = time.Now() 
  3.     var timestampSecond = nowTime.Unix() 
  4.     fmt.Println(timestampSecond) 

執行結果

 

到目前為止已經有1603698727秒了,時間不等人吶!

納秒時間戳

一般情況下我們使用的都是秒,但是時間戳還可以返回成納秒,用的不多,了解就好。

代碼

  1. func main() { 
  2.     var nowTime = time.Now() 
  3.     var timestampNano = nowTime.UnixNano() 
  4.     fmt.Println(timestampNano) 

執行結果

 

時間戳轉Time

有時候別人給我們的是時間戳,我們需要反著轉以下,時間戳->時間類型。

需要用到的是time.Unix。

代碼

  1. func main() { 
  2.     //時間戳 
  3.     var timestampSecond int64 = 1603698727 
  4.     //轉換為time對象 
  5.     var timeObj = time.Unix(timestampSecond, 0) 
  6.     var year = timeObj.Year()     //當前年份 
  7.     var month = timeObj.Month()   //當前月份 
  8.     var day = timeObj.Day()       //今天幾號 
  9.     var hour = timeObj.Hour()     //現在幾時 
  10.     var Minute = timeObj.Minute() //現在幾分 
  11.     var second = timeObj.Second() //現在幾秒 
  12.     fmt.Printf("年份:%v\n", year
  13.     fmt.Printf("月份:%v\n", month
  14.     fmt.Printf("幾號:%v\n", day
  15.     fmt.Printf("幾時:%v\n", hour
  16.     fmt.Printf("幾分:%v\n", Minute
  17.     fmt.Printf("幾秒:%v\n", second

執行效果

 

時間+

很多時候,我們拿到一個時間,我們需要向前或者向后推算一個月,或者幾個小時,這就屬于時間+。

在Go中,時間推算有倆函數,一個是Add,一個是AddDate,分別是+小時和+天數。

Add

代碼

Add最大單位是小時,只能+小時

  1. func main() { 
  2.     //當前時間 
  3.     nowTime := time.Now() 
  4.     fmt.Println("當前時間:",nowTime) 
  5.     time1 := nowTime.Add(time.Hour
  6.     fmt.Println("加一個小時時間:", time1) 
  7.     time2 := nowTime.Addtime.Hour*2) 
  8.     fmt.Println("加二個小時時間:", time2) 

執行結果

 

AddDate

AddDate就牛逼很多了,有三個參數,分別是年,月,日,根據需求加就行了。

代碼

  1. func main() { 
  2.     //當前時間 
  3.     nowTime := time.Now() 
  4.     fmt.Println("當前時間:",nowTime) 
  5.     month1 := nowTime.AddDate(0, 1, 1) 
  6.     fmt.Println("加一個月時間:", month1) 
  7.     month2 := nowTime.AddDate(0, 2, 1) 
  8.     fmt.Println("加二個月時間:", month2) 

執行結果

 

注意:上述不僅可以時間+,還可以時間-,前面加負號就可以了。

Sub

Sub通常用在計算某一段代碼執行用了多久時間,最后時間-最開始時間=執行時間。

代碼

  1. func main() { 
  2.     //當前時間 
  3.     beginTime := time.Now() 
  4.     //各種操作 
  5.     time.Sleep(time.Second
  6.     //結束時間 
  7.     end_time := time.Now() 
  8.     //計算時間 
  9.     execTime := end_time.Sub(beginTime) 
  10.     fmt.Println("執行時間:", execTime) 

執行結果

 

定時器

默認的定時器挺Low的,只有最簡單的功能,了解就好。

示例:每隔一秒執行次相關代碼。

代碼

  1. func main() { 
  2.     ticker := time.Tick(time.Second
  3.     for i := range ticker { 
  4.         fmt.Println(i) 

執行結果

 

時間格式化(time -> string)

Go語言的時間格式化,有點逗,跟其他語言都不一樣,沒有%Y,%M之類的寫法。

記住一個時間2006-01-02 15:04:05.000 Mon Jan/PM Mon Jan。

分別對應年-月-日 時:分:秒 24/12。

當前,同其語言一樣,可以只格式化年-月-日等。

格式時間需要用到Format方法。

代碼

  1. func main() { 
  2.     now := time.Now() 
  3.     //年 月 日 時 分 秒 
  4.     fmt.Println(now.Format("2006-01-02 15:04:05")) 
  5.     //24小時 
  6.     fmt.Println(now.Format("2006-01-02 15:04:05 Mon Jan")) 
  7.     //12小時 
  8.     fmt.Println(now.Format("2006-01-02 15:04:05 PM Mon Jan")) 
  9.     //年月日 
  10.     fmt.Println(now.Format("2006-01-02")) 

執行結果


 

 

字符串格式化時間(string -> time)

將拿到的時間字符串轉成時間類型。

代碼

  1. func main() { 
  2.     //時間字符串 
  3.     timeString := "2020/09/01 14:01:45" 
  4.     //加載時區,亞洲/上海 
  5.     location, err := time.LoadLocation("Asia/Shanghai"
  6.     if err != nil { 
  7.         fmt.Println("時區加載失敗,", err) 
  8.         return 
  9.     timeObj, err := time.ParseInLocation("2006/01/02 15:04:05", timeString, location) 
  10.     if err != nil { 
  11.         fmt.Println("時間轉換失敗,", err) 
  12.         return 
  13.     fmt.Println(timeObj) 

執行結果

 

總結

到這終于結束了,關于Go時間的操作基本就上述這么多。

當然,這是自帶的包的功能有這么多,對于平常使用基本夠用。

其實主要重要的是Add和AddDate,時間 -> 格式化字符串,字符串 -> 時間,這些在平常中使用頻率最高。

如果在操作過程中有任何問題,記得下面留言,我們看到會第一時間解決問題。

如果你覺得文章還可以,記得點贊留言支持我們哈。感謝你的閱讀,有問題請記得在下方留言噢~

  本文轉載自微信公眾號「Go語言進階學習」,可以通過以下二維碼關注。轉載本文請聯系Go語言進階學習公眾號。

 

責任編輯:武曉燕 來源: Go語言進階學習
相關推薦

2021-06-09 09:06:52

Go語言算法

2020-12-02 08:45:36

Go語言

2020-11-30 06:17:03

Go語言

2020-11-26 06:40:24

Go語言基礎

2020-11-23 08:54:14

Go語言結構體

2023-12-30 10:22:57

Go語言函數開發

2024-10-28 00:40:49

Go語法版本

2023-02-10 09:40:36

Go語言并發

2023-04-02 23:13:07

Go語言bufio

2024-01-07 19:54:51

2021-01-23 12:47:19

MySQL數據庫Go語言

2023-12-08 14:32:02

C語言編程文件操作

2020-11-05 09:58:16

Go語言Map

2020-12-16 08:07:28

語言基礎反射

2020-12-23 08:39:11

Go語言基礎技術

2022-02-16 10:03:06

對象接口代碼

2020-10-22 08:33:22

Go語言

2020-11-11 10:52:54

Go語言C語言

2023-04-09 23:09:59

Go語言函數

2024-05-10 08:04:44

開發者Go語言
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜成人免费视频 | 欧美精品一区在线观看 | 精品久久久久久久人人人人传媒 | 精品中文字幕一区二区三区 | 国产精品美女久久久久久久久久久 | 亚洲视频免费观看 | xnxx 日本免费 | 久久久日韩精品一区二区三区 | 亚洲专区在线 | 国产高清久久 | 精品一区二区三区在线观看国产 | 亚洲国产精品一区二区第一页 | 天天操夜夜爽 | 日韩成人高清在线 | 亚洲精品美女视频 | 99久久婷婷国产精品综合 | 91传媒在线观看 | 日韩欧美一区二区三区免费看 | 日韩精品一区二区三区 | 狠狠涩 | 中文成人在线 | 亚洲视频一区二区三区四区 | 成人免费一区二区 | 国产精品免费视频一区 | 日本视频免费观看 | 操久久 | 色婷婷综合久久久中字幕精品久久 | 在线视频一区二区三区 | 日韩精品在线播放 | 国产色网 | 一区二区三区四区免费视频 | 羞羞网站在线观看 | a黄视频 | 99视频在线免费观看 | 中文字幕日韩欧美 | 久久久精品一区二区三区 | av毛片 | 国产午夜精品一区二区 | 中文字幕一区二区三区四区五区 | 黄色一级大片在线免费看产 | 久久久久久国产精品久久 |