欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

golang時(shí)間/時(shí)間戳的獲取與轉(zhuǎn)換實(shí)例代碼

 更新時(shí)間:2022年11月29日 16:23:32   作者:開(kāi)發(fā)運(yùn)維玄德公  
說(shuō)實(shí)話,golang的時(shí)間轉(zhuǎn)化還是很麻煩的,最起碼比php麻煩很多,下面這篇文章主要給大家介紹了關(guān)于golang時(shí)間/時(shí)間戳的獲取與轉(zhuǎn)換的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

1. 獲取時(shí)間

1.1 當(dāng)前時(shí)間獲取

package main

import (
        "fmt"
        "time"
)

func main() {
   currentTime := time.Now()                  //當(dāng)前時(shí)間
   currentYear := time.Now().Year()        //當(dāng)前年
   currentMonth := time.Now().Month()       //當(dāng)前月
   currentDay := time.Now().Day()         //當(dāng)前日
   currentHour := time.Now().Hour()        //當(dāng)前小時(shí)小時(shí)
   currentMinute := time.Now().Minute()      //當(dāng)前分鐘
   currentSecond := time.Now().Second()      //當(dāng)前秒
   currentNSecond := time.Now().Nanosecond()  //當(dāng)前納秒
   
   //打印結(jié)果
   fmt.Println("當(dāng)前時(shí)間是:", currentTime)
   fmt.Println("當(dāng)前年:", currentYear)
   fmt.Println("當(dāng)前月:", currentMonth)
   fmt.Println("當(dāng)前日:", currentDay)
   fmt.Println("當(dāng)前小時(shí):", currentHour)
   fmt.Println("當(dāng)前分鐘:", currentMinute)
   fmt.Println("當(dāng)前秒:", currentSecond)
   fmt.Println("當(dāng)前納秒:", currentNSecond)
}

結(jié)果輸出

當(dāng)前時(shí)間是: 2021-11-20 21:21:57.670992812 +0800 CST m=+0.000043774
當(dāng)前年: 2021
當(dāng)前月: November
當(dāng)前日: 20
當(dāng)前小時(shí): 21
當(dāng)前分鐘: 21
當(dāng)前秒: 57
當(dāng)前納秒: 671063850

1.2 獲取之前/之后的時(shí)間

獲取1分鐘之前的時(shí)間戳

package main

import (
        "fmt"
        "time"
)

func main() {
        currentTime := time.Now()
        m, _ := time.ParseDuration("-1m")
        result := currentTime.Add(m)
        fmt.Println(result)
}

說(shuō)明

  • time.ParseDuration 將傳入的"-1m"轉(zhuǎn)換為“持續(xù)時(shí)間”類型(time.Duration),輸出為-0h1m0s
  • 之后Add() 可對(duì)其和時(shí)間進(jìn)行計(jì)算

輸出

2021-11-21 15:42:49.32800253 +0800 CST m=-59.999965656

獲取一小時(shí)之前的時(shí)間

方法同上,持續(xù)時(shí)間可如下轉(zhuǎn)換:

time.ParseDuration("-1h")

獲取1小時(shí)后的時(shí)間

方法同上,持續(xù)時(shí)間可如下轉(zhuǎn)換

ime.ParseDuration("1h")

2. 時(shí)間戳

2.1 獲取當(dāng)前時(shí)間戳

package main

import (
        "fmt"
        "time"
)

func main() {
        timeStamp := time.Now().Unix()  //秒為單位的時(shí)間戳
        timeStampN := time.Now().UnixNano()  //納秒為單位的時(shí)間戳
        fmt.Print(timeStamp,"\n",timeStampN,"\n")
}

輸出

1637478374
1637478374774676883

2.2 時(shí)間 轉(zhuǎn) 時(shí)間戳

2.2.1 方法一

基本用法

package main

import (
        "fmt"
        "time"
)

func main() {
        timeStamp := time.Date(2021, 11, 20, 23, 34, 10, 0, time.Local).Unix()
        fmt.Println(timeStamp)
}

示例:獲取當(dāng)天01:00:00的時(shí)間戳

package main

import (
        "fmt"
        "time"
)

func main() {
   currentYear := time.Now().Year()
   currentMonth := time.Now().Month()
   currentDay := time.Now().Day()
   timeStamp := time.Date(currentYear, currentMonth, currentDay, 1, 0, 0, 0, time.Local).Unix()
   fmt.Println(timeStamp)
}

2.2.2 方法二

package main

import (
        "fmt"
        "time"
)

func main() {
        timeLayout := "2006-01-02 15:04:05"
        timeStamp, _ := time.ParseInLocation(timeLayout, "2021-11-20 23:34:10", time.Local)
        fmt.Println(timeStamp)
}

2.2 時(shí)間戳轉(zhuǎn)時(shí)間

基本使用

package main

import (
        "fmt"
        "time"
)

func main() {
        timeStr := time.Unix(1637420154, 0)
        fmt.Println(timeStr)
}

輸出

2021-11-20 22:55:54 +0800 CST

按模板格式化輸出

注意:模板格式里的時(shí)間不能隨意更改

package main

import (
        "fmt"
        "time"
)

func main() {
        timeLayout := "2006-01-02 15:04:05"
        timeStr := time.Unix(1637420154, 0).Format(timeLayout)
        fmt.Println(timeStr)
}

輸出

2021-11-20 22:55:54

模板輸出當(dāng)前時(shí)間

同上例,只是將當(dāng)前時(shí)間戳轉(zhuǎn)換成了時(shí)間字串輸出

package main

import (
        "fmt"
        "time"
)

func main() {
        timeStamp := time.Now().Unix()
        timeLayout := "2006-01-02 15:04:05"
        timeStr := time.Unix(timeStamp, 0).Format(timeLayout)
        fmt.Println(timeStr)

3. 時(shí)間計(jì)算

3.1 時(shí)間加時(shí)間段

方法

        currentTime := time.Now()
        m, _ := time.ParseDuration("-1m")
        result := currentTime.Add(m)

示例

見(jiàn) “1.2 獲取之前/之后的時(shí)間”

3.2 計(jì)算兩時(shí)間之差

語(yǔ)法

timeOne - timeTwo的方法如下:

timeOne.Sub(timeTwo)

示例

package main

import (
        "fmt"
        "time"
)

func main() {
        currentTime := time.Now()
        //創(chuàng)建時(shí)間1
        timeDuOne, _ := time.ParseDuration("-1h")
        timeOne := currentTime.Add(timeDuOne)
        fmt.Println("時(shí)間1:",timeOne)
        //創(chuàng)建時(shí)間2
        timeDuTwo, _ := time.ParseDuration("1h")
        timeTwo := currentTime.Add(timeDuTwo)
        fmt.Println("時(shí)間2:",timeTwo)
        //計(jì)算兩時(shí)間 
        dTime := timeOne.Sub(timeTwo)
        fmt.Println("兩時(shí)間的差是", dTime)

        m := timeOne.Sub(timeTwo)
        fmt.Println("差值按分鐘計(jì):", m.Minutes())

        h := timeOne.Sub(timeTwo)
        fmt.Println("差值按小時(shí)計(jì):", h.Hours())

        d := timeOne.Sub(timeTwo)
        fmt.Println("差值按天計(jì)算:", d.Hours()/24)
}

結(jié)果輸出

時(shí)間1: 2021-11-21 16:04:39.293524501 +0800 CST m=-3599.999909286
時(shí)間2: 2021-11-21 18:04:39.293524501 +0800 CST m=+3600.000090714
兩時(shí)間的差是 -2h0m0s
差值按分鐘計(jì): -120
差值按小時(shí)計(jì): -2
差值按天計(jì)算: -0.08333333333333333

總結(jié)

到此這篇關(guān)于golang時(shí)間/時(shí)間戳的獲取與轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)golang時(shí)間 時(shí)間戳獲取與轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go語(yǔ)言使用Cobra實(shí)現(xiàn)強(qiáng)大命令行應(yīng)用

    Go語(yǔ)言使用Cobra實(shí)現(xiàn)強(qiáng)大命令行應(yīng)用

    Cobra是一個(gè)強(qiáng)大的開(kāi)源工具,能夠幫助我們快速構(gòu)建出優(yōu)雅且功能豐富的命令行應(yīng)用,本文為大家介紹了如何使用Cobra打造強(qiáng)大命令行應(yīng)用,感興趣的小伙伴可以了解一下
    2023-07-07
  • 解決golang 反射interface{}做零值判斷的一個(gè)重大坑

    解決golang 反射interface{}做零值判斷的一個(gè)重大坑

    這篇文章主要介紹了解決golang 反射interface{}做零值判斷的一個(gè)重大坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • GO語(yǔ)言的IO方法實(shí)例小結(jié)

    GO語(yǔ)言的IO方法實(shí)例小結(jié)

    這篇文章主要介紹了GO語(yǔ)言的IO方法實(shí)例小結(jié),Docker的火爆促成了當(dāng)下新興的Go語(yǔ)言人氣的大幅攀升,需要的朋友可以參考下
    2015-10-10
  • go?Cobra命令行工具入門(mén)教程

    go?Cobra命令行工具入門(mén)教程

    Cobra是一個(gè)用Go語(yǔ)言實(shí)現(xiàn)的命令行工具并且現(xiàn)在正在被很多項(xiàng)目使用,例如:Kubernetes、Hugo和Github?CLI等,通過(guò)使用Cobra,我們可以快速的創(chuàng)建命令行工具,特別適合寫(xiě)測(cè)試腳本,各種服務(wù)的Admin?CLI等,本文重點(diǎn)給大家介紹go?Cobra命令行工具,感興趣的朋友一起看看吧
    2022-06-06
  • Go 語(yǔ)言 IDE 中的 VSCode 配置使用教程

    Go 語(yǔ)言 IDE 中的 VSCode 配置使用教程

    Gogland 是 JetBrains 公司推出的Go語(yǔ)言集成開(kāi)發(fā)環(huán)境。這篇文章主要介紹了Go 語(yǔ)言 IDE 中的 VSCode 配置使用教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • go語(yǔ)言中切片與內(nèi)存復(fù)制 memcpy 的實(shí)現(xiàn)操作

    go語(yǔ)言中切片與內(nèi)存復(fù)制 memcpy 的實(shí)現(xiàn)操作

    這篇文章主要介紹了go語(yǔ)言中切片與內(nèi)存復(fù)制 memcpy 的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • 帶你在Go?test中體驗(yàn)jest的安裝使用

    帶你在Go?test中體驗(yàn)jest的安裝使用

    這篇文章帶你在Go?test中體驗(yàn)jest的安裝使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Go設(shè)計(jì)模式之備忘錄模式圖文詳解

    Go設(shè)計(jì)模式之備忘錄模式圖文詳解

    備忘錄模式是一種行為設(shè)計(jì)模式, 允許在不暴露對(duì)象實(shí)現(xiàn)細(xì)節(jié)的情況下保存和恢復(fù)對(duì)象之前的狀態(tài),本文主要通過(guò)一些圖片來(lái)給大家介紹一下Go的備忘錄模式,需要的朋友可以參考下
    2023-08-08
  • Golang構(gòu)建WebSocket服務(wù)器和客戶端的示例詳解

    Golang構(gòu)建WebSocket服務(wù)器和客戶端的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何使用Go語(yǔ)言構(gòu)建WebSocket服務(wù)器和客戶端,以實(shí)現(xiàn)雙向通信,文中的示例代碼講解詳細(xì),需要的小伙伴可以參考一下
    2023-11-11
  • Go語(yǔ)言轉(zhuǎn)化php數(shù)組的示例代碼

    Go語(yǔ)言轉(zhuǎn)化php數(shù)組的示例代碼

    這篇文章主要為大家詳細(xì)介紹了Go語(yǔ)言如何實(shí)現(xiàn)轉(zhuǎn)化php數(shù)組的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),對(duì)我們深入學(xué)習(xí)GO語(yǔ)言有一定的幫助,需要的可以參考下
    2023-11-11

最新評(píng)論