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

詳解Golang中的各種時間操作

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

需求

時間格式的轉換比較麻煩,自己寫了個工具,可以通過工具中的這些方法相互調用轉成自己想要的格式,代碼如下,后續(xù)有新的函數再添加

實現代碼

package utils

import "time"

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

// 當前時間
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)
}

// 轉為時間戳->秒數
func GetTimeUnix(t time.Time) int64 {
 return t.Unix()
}

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

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

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

// 標準字符串轉時間
func GetTimeByNormalString(timestring string) (time.Time,error){
 if timestring == "" {
 return time.Time{},nil
 }
 return time.ParseInLocation(NORMALTIMEFORMAT, timestring, time.Local)
}

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

// n小時后的時間字符串
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)
}

// 計算倆個時間差多少小時
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
}

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

// 時間字符串轉為標準字符串
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
}

判斷一個時間點是否在一個時間點之后

過程:這個對于時間戳而言非常簡單,但是對于其他的需要轉換到time即可對比

  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之前!")
  }

判斷一個時間相比另外一個時間點過去了多久
過程:這個是用Time的方式來對比

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

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

相關文章

  • Go 如何基于IP限制HTTP訪問頻率的方法實現

    Go 如何基于IP限制HTTP訪問頻率的方法實現

    這篇文章主要介紹了Go 如何基于IP限制HTTP訪問頻率的方法實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • Golang分布式應用之Redis示例詳解

    Golang分布式應用之Redis示例詳解

    這篇文章主要為大家介紹了Golang分布式應用之Redis示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Go語言實現熱更新具體步驟

    Go語言實現熱更新具體步驟

    這篇文章主要為大家介紹了Go語言實現熱更新具體步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Go語言使用buffer讀取文件的實現示例

    Go語言使用buffer讀取文件的實現示例

    本文主要介紹了Go語言使用buffer讀取文件的實現示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • Go語言panic和recover的用法實例

    Go語言panic和recover的用法實例

    panic()和recover()是Go語言中用于處理錯誤的兩個重要函數,本文主要介紹了Go語言panic和recover的用法實例,panic()用于中止程序并引發(fā)panic,而recover()用于捕獲panic并恢復程序的執(zhí)行,感興趣的可以了解一下
    2024-01-01
  • 詳解Golang time包中的結構體time.Time

    詳解Golang time包中的結構體time.Time

    在日常開發(fā)過程中,會頻繁遇到對時間進行操作的場景,使用 Golang 中的 time 包可以很方便地實現對時間的相關操作,本文先講解一下 time 包中的結構體 time.Time,需要的朋友可以參考下
    2023-07-07
  • gtoken替換jwt實現sso登錄的排雷避坑

    gtoken替換jwt實現sso登錄的排雷避坑

    這篇文章主要為大家介紹了gtoken替換jwt實現sso登錄的排雷避坑,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 使用golang實現一個MapReduce的示例代碼

    使用golang實現一個MapReduce的示例代碼

    這篇文章主要給大家介紹了關于如何使用golang實現一個MapReduce,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-09-09
  • 深入理解Golang的單元測試和性能測試

    深入理解Golang的單元測試和性能測試

    Go語言提供了強大的測試工具,下面這篇文章主要給大家介紹了關于Golang單元測試和性能測試的相關資料,文中通過示例代碼給大家詳細介紹了單元測試和性能測試的相關內容,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • golang調用c實現的dll接口細節(jié)分享

    golang調用c實現的dll接口細節(jié)分享

    這篇文章主要介紹了golang調用c實現的dll接口細節(jié)分享,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05

最新評論