Go語言中DateTime的用法介紹
一、基本使用
①從屬于time這個(gè)包
②一般使用都是使用
time.Time 這個(gè)類型表示時(shí)間 ,time包中還有一些常量,源碼如下
// Common durations. There is no definition for units of Day or larger // to avoid confusion across daylight savings time zone transitions. // // To count the number of units in a Duration, divide: // second := time.Second // fmt.Print(int64(second/time.Millisecond)) // prints 1000 // // To convert an integer number of units to a Duration, multiply: // seconds := 10 // fmt.Print(time.Duration(seconds)*time.Second) // prints 10s //<br data-filtered="filtered"> const ( Nanosecond Duration = 1 Microsecond = 1000 * Nanosecond Millisecond = 1000 * Microsecond Second = 1000 * Millisecond Minute = 60 * Second Hour = 60 * Minute )
③ time.Now() 獲取當(dāng)前的時(shí)間,返回的是Time類型
Time類型中的
- Year() 獲取當(dāng)前的年份
- Month() 獲取當(dāng)前的月份
- Day() 獲取當(dāng)前的日期
- Hour() 獲取當(dāng)前小時(shí)
- Minute() 獲取當(dāng)前分鐘
- Second() 獲取當(dāng)前秒
④常用 Unix() 方法獲取時(shí)間戳信息
⑤通過AddDate()方法增加指定日期,Add方法增加指定時(shí)間
舉個(gè)例子:
- ①打印時(shí)間基礎(chǔ)信息
func DateTimeBasic() time.Time{ now:=time.Now() fmt.Printf("%v\n",now) year:=now.Year() month:=now.Month() day:=now.Day() hour:=now.Hour() minute:=now.Minute() send:=now.Second() fmt.Printf("%02d/%02d/%02d %02d:%02d:%02d\n",year,month,day,hour,minute,send) return now }
- ② 時(shí)間和時(shí)間戳直接的轉(zhuǎn)換 第一個(gè)函數(shù)輸入時(shí)間返回時(shí)間戳,第二個(gè)函數(shù)輸入時(shí)間戳返回時(shí)間
func GetDateTimeStamp(datetime time.Time) int64{ now:=datetime.Unix() fmt.Printf("TimeStamp: %v\n",now) return now } func GetDateTime(timeStamp int64){ now:=time.Unix(timeStamp,0) fmt.Printf("DateTime: %v\n",now) }
- ③增加時(shí)間
func AddDay(src time.Time) time.Time{ //添加一天兩小時(shí) src = src.AddDate(0,0,1).Add(time.Hour * 2) return src }
- ④測(cè)試一下
package main import "DateTimeDemo" func main(){ dateTime:=DateTimeDemo.DateTimeBasic() calcDateTime := DateTimeDemo.AddDay(dateTime) timeStamp:=DateTimeDemo.GetDateTimeStamp(calcDateTime) DateTimeDemo.GetDateTime(timeStamp) }
- ⑤輸出
2019-02-26 16:51:59.7509972 +0800 CST m=+0.010553801
2019/02/26 16:51:59
TimeStamp: 1551264719
DateTime: 2019-02-27 18:51:59 +0800 CST
二、簡單定時(shí)器
利用time中Tick()方法
func SimpleTicker(){ //間隔兩秒,會(huì)像Channel中寫入一個(gè)數(shù)據(jù) ticker := time.Tick(time.Second * 2) for i := range ticker{ fmt.Printf("%v\n",i) simpleTask() } } func simpleTask(){ fmt.Println("Task Start") }
執(zhí)行結(jié)果:
2019-02-26 16:54:43.7828451 +0800 CST m=+2.077803401
Task Start
2019-02-26 16:54:45.7831559 +0800 CST m=+4.078114201
Task Start
2019-02-26 16:54:47.7831744 +0800 CST m=+6.078132701
Task Start
2019-02-26 16:54:49.7833155 +0800 CST m=+8.078273801
Task Start
2019-02-26 16:54:51.782682 +0800 CST m=+10.077640301
Task Start
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
Go語言實(shí)現(xiàn)百萬級(jí)WebSocket連接架構(gòu)設(shè)計(jì)及服務(wù)優(yōu)化
本文將詳細(xì)介紹如何在Go中構(gòu)建一個(gè)能夠支持百萬級(jí)WebSocket連接的服務(wù),包括系統(tǒng)架構(gòu)設(shè)計(jì)、性能優(yōu)化策略以及具體的實(shí)現(xiàn)步驟和代碼示例2024-01-01Golang實(shí)現(xiàn)WebSocket服務(wù)的項(xiàng)目實(shí)踐
本文介紹如何使用Golang實(shí)現(xiàn)實(shí)時(shí)后端WebSocket服務(wù),首先使用Gin框架搭建http服務(wù),然后使用gorilla/websocket庫實(shí)現(xiàn)簡單后端WebSocket服務(wù),具有一定的參考價(jià)值,感興趣的可以了解一下2023-05-05Go語言實(shí)戰(zhàn)之切片內(nèi)存優(yōu)化
Go 語言的切片是一個(gè)動(dòng)態(tài)的數(shù)據(jù)結(jié)構(gòu),可以方便地對(duì)其進(jìn)行擴(kuò)容和縮容操作。這篇文章主要為大家詳細(xì)介紹了Go語言如何實(shí)現(xiàn)切片內(nèi)存優(yōu)化,需要的可以參考一下2023-03-03解決goland 導(dǎo)入項(xiàng)目后import里的包報(bào)紅問題
這篇文章主要介紹了解決goland 導(dǎo)入項(xiàng)目后import里的包報(bào)紅問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-05-05Golang處理gRPC請(qǐng)求/響應(yīng)元數(shù)據(jù)的示例代碼
前段時(shí)間實(shí)現(xiàn)內(nèi)部gRPC框架時(shí),為了實(shí)現(xiàn)在服務(wù)端攔截器中打印請(qǐng)求及響應(yīng)的頭部信息,便查閱了部分關(guān)于元數(shù)據(jù)的資料,因?yàn)橹形木W(wǎng)絡(luò)上對(duì)于該領(lǐng)域的信息較少,于是在這做了一些簡單的總結(jié),需要的朋友可以參考下2024-03-03golang?四則運(yùn)算計(jì)算器yacc歸約手寫實(shí)現(xiàn)
這篇文章主要為大家介紹了golang?四則運(yùn)算?計(jì)算器?yacc?歸約的手寫實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07Go?panic的三種產(chǎn)生方式細(xì)節(jié)探究
這篇文章主要介紹了Go?panic的三種產(chǎn)生方式細(xì)節(jié)探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12golang使用sort接口實(shí)現(xiàn)排序示例
這篇文章主要介紹了golang使用sort接口實(shí)現(xiàn)排序的方法,簡單分析了sort接口的功能并實(shí)例演示了基于sort接口的排序?qū)崿F(xiàn)方法,需要的朋友可以參考下2016-07-07