最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Golang中的各種時(shí)間操作

 更新時(shí)間:2020年10月21日 10:50:49   作者:Kingram  
這篇文章主要介紹了詳解Golang中的各種時(shí)間操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

需求

時(shí)間格式的轉(zhuǎn)換比較麻煩,自己寫(xiě)了個(gè)工具,可以通過(guò)工具中的這些方法相互調(diào)用轉(zhuǎn)成自己想要的格式,代碼如下,后續(xù)有新的函數(shù)再添加

實(shí)現(xiàn)代碼

package utils

import "time"

const (
 TIMEFORMAT = "20060102150405"
 NORMALTIMEFORMAT = "2006-01-02 15:04:05"
)

// 當(dāng)前時(shí)間
func GetTime() time.Time{
 return time.Now()
}

// 格式化為:20060102150405
func GetTimeString(t time.Time) string {
 return t.Format(TIMEFORMAT)
}

// 格式化為:2006-01-02 15:04:05
func GetNormalTimeString(t time.Time) string {
 return t.Format(NORMALTIMEFORMAT)
}

// 轉(zhuǎn)為時(shí)間戳->秒數(shù)
func GetTimeUnix(t time.Time) int64 {
 return t.Unix()
}

// 轉(zhuǎn)為時(shí)間戳->毫秒數(shù)
func GetTimeMills(t time.Time) int64 {
 return t.UnixNano() / 1e6
}

// 時(shí)間戳轉(zhuǎn)時(shí)間
func GetTimeByInt(t1 int64) time.Time{
 return time.Unix(t1,0)
}

// 字符串轉(zhuǎn)時(shí)間
func GetTimeByString(timestring string) (time.Time,error){
 if timestring == "" {
 return time.Time{},nil
 }
 return time.ParseInLocation(TIMEFORMAT, timestring, time.Local)
}

// 標(biāo)準(zhǔn)字符串轉(zhuǎn)時(shí)間
func GetTimeByNormalString(timestring string) (time.Time,error){
 if timestring == "" {
 return time.Time{},nil
 }
 return time.ParseInLocation(NORMALTIMEFORMAT, timestring, time.Local)
}

// 比較兩個(gè)時(shí)間大小
func CompareTime(t1 ,t2 time.Time) bool {
 return t1.Before(t2)
}

// n小時(shí)后的時(shí)間字符串
func GetNextHourTime(s string, n int64) string {
 t2, _ := time.ParseInLocation(TIMEFORMAT, s, time.Local)
 t1 := t2.Add(time.Hour * time.Duration(n))
 return GetTimeString(t1)
}

// 計(jì)算倆個(gè)時(shí)間差多少小時(shí)
func GetHourDiffer(start_time, end_time string) float32 {
 var hour float32
 t1, err := time.ParseInLocation(TIMEFORMAT, start_time, time.Local)
 t2, err := time.ParseInLocation(TIMEFORMAT, end_time, time.Local)
 if err == nil && CompareTime(t1,t2) {
 diff := GetTimeUnix(t2) - GetTimeUnix(t1)
 hour = float32(diff) / 3600
 return hour
 }
 return hour
}

// 判斷當(dāng)前時(shí)間是否是整點(diǎn)
func Checkhours() bool {
 _, m, s := GetTime().Clock()
 if m == s && m == 0 && s == 0 {
 return true
 }
 return false
}

// 時(shí)間字符串轉(zhuǎn)為標(biāo)準(zhǔn)字符串
func StringToNormalString(t string) string {
 if !(len(TIMEFORMAT) == len(t) || len(SHORTTIMESTRING) == len(t)) {
 return t
 }
 if len(SHORTTIMESTRING) == len(t) {
 t += "000000"
 }
 if len(TIMEFORMAT) == len(t) {
 t1,err:= GetTimeByString(t)
 if err != nil {
 return t
 }
 t = GetTimeString(t1)
 }
 return t
}

判斷一個(gè)時(shí)間點(diǎn)是否在一個(gè)時(shí)間點(diǎn)之后

過(guò)程:這個(gè)對(duì)于時(shí)間戳而言非常簡(jiǎn)單,但是對(duì)于其他的需要轉(zhuǎn)換到time即可對(duì)比

  stringToTime, _ := time.Parse("2006-01-02 15:04:05", "2017-12-12 12:00:00")
  beforeOrAfter := stringToTime.After(time.Now())
  if beforeOrAfter == true {
    fmt.Println("2017-12-12 12:00:00在tNow之后!")
  } else {
    fmt.Println("2017-12-12 12:00:00在tNow之前!")
  }

判斷一個(gè)時(shí)間相比另外一個(gè)時(shí)間點(diǎn)過(guò)去了多久
過(guò)程:這個(gè)是用Time的方式來(lái)對(duì)比

  beginTime :=time.Now()
  time.Sleep(time.Second*1)
  durtime:= time.Since(beginTime)
  fmt.Println("離現(xiàn)在過(guò)去了:",durtime)

到此這篇關(guān)于詳解Golang中的各種時(shí)間操作的文章就介紹到這了,更多相關(guān)Golang 時(shí)間操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go語(yǔ)言MySQLCURD數(shù)據(jù)庫(kù)操作示例詳解

    Go語(yǔ)言MySQLCURD數(shù)據(jù)庫(kù)操作示例詳解

    這篇文章主要為大家介紹了Go語(yǔ)言MySQLCURD數(shù)據(jù)庫(kù)操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Go語(yǔ)言基礎(chǔ)類(lèi)型及常量用法示例詳解

    Go語(yǔ)言基礎(chǔ)類(lèi)型及常量用法示例詳解

    這篇文章主要為大家介紹了Go語(yǔ)言基礎(chǔ)類(lèi)型及常量的用法及示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • 教你一分鐘配置好Go語(yǔ)言開(kāi)發(fā)環(huán)境(多種操作系統(tǒng))

    教你一分鐘配置好Go語(yǔ)言開(kāi)發(fā)環(huán)境(多種操作系統(tǒng))

    在這篇文章中,我們從頭到尾一步步指導(dǎo)你配置Golang開(kāi)發(fā)環(huán)境,并編寫(xiě)你的第一個(gè)"Hello,?World!"程序,我們?cè)敿?xì)解釋了在多種操作系統(tǒng)(包括Windows、Linux和macOS)下的安裝過(guò)程、環(huán)境變量設(shè)置以及如何驗(yàn)證安裝是否成功
    2023-09-09
  • golang slice元素去重操作

    golang slice元素去重操作

    這篇文章主要介紹了golang slice元素去重操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • 淺析Go 字符串指紋

    淺析Go 字符串指紋

    這篇文章主要介紹了Go 字符串指紋的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)go語(yǔ)言,感興趣的朋友可以了解下
    2020-09-09
  • golang使用tail實(shí)現(xiàn)追蹤文件變更

    golang使用tail實(shí)現(xiàn)追蹤文件變更

    這篇文章主要為大家介紹了golang如何借助 github.com/hpcloud/tail ,實(shí)現(xiàn)實(shí)時(shí)追蹤文件變更,達(dá)到類(lèi)似shell命令tail -f的效果,感興趣的小伙伴可以了解一下
    2023-08-08
  • 一文完全掌握 Go math/rand(源碼解析)

    一文完全掌握 Go math/rand(源碼解析)

    這篇文章主要介紹了一文完全掌握 Go math/rand(源碼解析),本文可以幫助大家快速使用Go Rand.,感興趣的朋友跟隨小編一起看看吧
    2021-04-04
  • Go語(yǔ)言操作數(shù)據(jù)庫(kù)及其常規(guī)操作的示例代碼

    Go語(yǔ)言操作數(shù)據(jù)庫(kù)及其常規(guī)操作的示例代碼

    這篇文章主要介紹了Go語(yǔ)言操作數(shù)據(jù)庫(kù)及其常規(guī)操作的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Go defer使用時(shí)的兩個(gè)常見(jiàn)陷阱與避免方法

    Go defer使用時(shí)的兩個(gè)常見(jiàn)陷阱與避免方法

    這篇文章主要將帶大家一起深入探討 Go 1.20 中 defer 的優(yōu)化機(jī)制,并揭示在使用 defer 時(shí)需要避免的兩個(gè)常見(jiàn)陷阱,有需要的可以了解下
    2025-03-03
  • Go方法接收者值接收者與指針接收者詳解

    Go方法接收者值接收者與指針接收者詳解

    這篇文章主要為大家介紹了Go方法接收者值接收者與指針接收者詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11

最新評(píng)論

洮南市| 平塘县| 开封市| 汝南县| 温宿县| 诸城市| 葫芦岛市| 娱乐| 华容县| 平安县| 色达县| 宣武区| 大丰市| 通城县| 喜德县| 香港 | 扎鲁特旗| 陇西县| 常宁市| 江孜县| 吉水县| 云龙县| 长海县| 罗源县| 大邑县| 陇川县| 福海县| 辽宁省| 沈阳市| 张家口市| 龙泉市| 江津市| 乐至县| 托里县| 澄城县| 屯昌县| 平远县| 浦江县| 浑源县| 阜康市| 库尔勒市|