<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Go語言基礎(chǔ)之time包詳解

          共 4193字,需瀏覽 9分鐘

           ·

          2021-02-10 17:52

          點擊上方“Go語言進階學習”,進行關(guān)注

          回復“Go語言”即可獲贈從入門到進階共10本電子書

          月落烏啼霜滿天,江楓漁火對愁眠。

          前言

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

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

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

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

          time.Now()

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

          相關(guān)代碼如下

          func main() {    var nowTime = time.Now()    fmt.Println(nowTime)    var year = nowTime.Year()     //當前年份    var month = nowTime.Month()   //當前月份    var day = nowTime.Day()       //今天幾號    var hour = nowTime.Hour()     //現(xiàn)在幾時    var Minute = nowTime.Minute() //現(xiàn)在幾分    var second = nowTime.Second() //現(xiàn)在幾秒    fmt.Printf("當前年份:%v\n",year)    fmt.Printf("當前月份:%v\n",month)    fmt.Printf("幾號了:%v\n",day)    fmt.Printf("幾時:%v\n",hour)    fmt.Printf("幾分:%v\n",Minute)    fmt.Printf("幾秒:%v\n",second)}

          執(zhí)行結(jié)果

          時間戳

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

          相關(guān)代碼

          func main() {    var nowTime = time.Now()    var timestampSecond = nowTime.Unix()    fmt.Println(timestampSecond)}

          執(zhí)行結(jié)果

          到目前為止已經(jīng)有1603698727秒了,時間不等人吶!

          納秒時間戳

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

          代碼

          func main() {    var nowTime = time.Now()    var timestampNano = nowTime.UnixNano()    fmt.Println(timestampNano)}

          執(zhí)行結(jié)果

          時間戳轉(zhuǎn)Time

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

          需要用到的是time.Unix

          代碼

          func main() {    //時間戳    var timestampSecond int64 = 1603698727    //轉(zhuǎn)換為time對象    var timeObj = time.Unix(timestampSecond, 0)    var year = timeObj.Year()     //當前年份    var month = timeObj.Month()   //當前月份    var day = timeObj.Day()       //今天幾號    var hour = timeObj.Hour()     //現(xiàn)在幾時    var Minute = timeObj.Minute() //現(xiàn)在幾分    var second = timeObj.Second() //現(xiàn)在幾秒    fmt.Printf("年份:%v\n", year)    fmt.Printf("月份:%v\n", month)    fmt.Printf("幾號:%v\n", day)    fmt.Printf("幾時:%v\n", hour)    fmt.Printf("幾分:%v\n", Minute)    fmt.Printf("幾秒:%v\n", second)}

          執(zhí)行效果

          時間+

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

          在Go中,時間推算有倆函數(shù),一個是Add,一個是AddDate,分別是+小時+天數(shù)

          Add

          代碼

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

          func main() {    //當前時間    nowTime := time.Now()    fmt.Println("當前時間:",nowTime)    time1 := nowTime.Add(time.Hour)    fmt.Println("加一個小時時間:", time1)    time2 := nowTime.Add( time.Hour*2)    fmt.Println("加二個小時時間:", time2)}

          執(zhí)行結(jié)果

          AddDate

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

          代碼

          func main() {    //當前時間    nowTime := time.Now()    fmt.Println("當前時間:",nowTime)    month1 := nowTime.AddDate(01, 1)    fmt.Println("加一個月時間:", month1)    month2 := nowTime.AddDate(02, 1)    fmt.Println("加二個月時間:", month2)}

          執(zhí)行結(jié)果

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

          Sub

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

          代碼

          func main() {    //當前時間    beginTime := time.Now()    //各種操作    time.Sleep(time.Second)    //結(jié)束時間    end_time := time.Now()    //計算時間    execTime := end_time.Sub(beginTime)    fmt.Println("執(zhí)行時間:", execTime)}

          執(zhí)行結(jié)果

          定時器

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


          示例:每隔一秒執(zhí)行次相關(guān)代碼。

          代碼

          func main() {    ticker := time.Tick(time.Second)    for i := range ticker {        fmt.Println(i)}}

          執(zhí)行結(jié)果

          時間格式化(time -> string)

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

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

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

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

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


          代碼

          func main() {    now := time.Now()    //年 月 日 時 分 秒    fmt.Println(now.Format("2006-01-02 15:04:05"))    //24小時    fmt.Println(now.Format("2006-01-02 15:04:05 Mon Jan"))    //12小時    fmt.Println(now.Format("2006-01-02 15:04:05 PM Mon Jan"))    //年月日    fmt.Println(now.Format("2006-01-02"))}

          執(zhí)行結(jié)果

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

          將拿到的時間字符串轉(zhuǎn)成時間類型。

          代碼

          func main() {    //時間字符串    timeString := "2020/09/01 14:01:45"    //加載時區(qū),亞洲/上海    location, err := time.LoadLocation("Asia/Shanghai")    if err != nil {        fmt.Println("時區(qū)加載失敗,", err)        return}    timeObj, err := time.ParseInLocation("2006/01/02 15:04:05", timeString, location)    if err != nil {        fmt.Println("時間轉(zhuǎn)換失敗,", err)        return}    fmt.Println(timeObj)}

          執(zhí)行結(jié)果

          總結(jié)

          到這終于結(jié)束了,關(guān)于Go時間的操作基本就上述這么多。

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

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

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

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

          想學習更多關(guān)于Python的知識,可以參考學習網(wǎng)址:http://pdcfighting.com/,點擊閱讀原文,可以直達噢~

          -------------------?End?-------------------

          往期精彩文章推薦:

          歡迎大家點贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          想加入Go學習群請在后臺回復【入群

          萬水千山總是情,點個【在看】行不行

          瀏覽 49
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  蘑菇视频成人 | 日韩国产精品久久久久亚州 | 97少妇 | 日本色情视频在线 | 日韩精品一级 |