Go各時(shí)間字符串使用解析
Go 中時(shí)間格式化的模板
const ( ANSIC = "Mon Jan _2 15:04:05 2006" UnixDate = "Mon Jan _2 15:04:05 MST 2006" RubyDate = "Mon Jan 02 15:04:05 -0700 2006" RFC822 = "02 Jan 06 15:04 MST" RFC822Z = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone RFC850 = "Monday, 02-Jan-06 15:04:05 MST" RFC1123 = "Mon, 02 Jan 2006 15:04:05 MST" RFC1123Z = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone RFC3339 = "2006-01-02T15:04:05Z07:00" RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00" Kitchen = "3:04PM" // Handy time stamps. Stamp = "Jan _2 15:04:05" StampMilli = "Jan _2 15:04:05.000" StampMicro = "Jan _2 15:04:05.000000" StampNano = "Jan _2 15:04:05.000000000" )
上面這些是官方定義的layout常量,我們自己也可以定義,如:
"2006-01-02 15:04:05"
"2006-01-02"
"2006-01-02 15:04"
"2006-01-02T15:04" //js和html中多用這種形式
"2006-01-02 15:03:04 -0700 MST"
Format 格式化為字符串
format 的使用對(duì)象是一個(gè) time.Time 對(duì)象,可以使用官方或者自己定義的布局進(jìn)行格式化的輸出,如:
now := time.Now() now.Format("2006-01-02 15:04:05") //輸出 2020-07-21 10:12:13
Parse 字符串解析為時(shí)間戳或int64
Parse 方法
需要兩個(gè)參數(shù),第一個(gè)是布局,第二個(gè)是字符串
//Parse解析格式化的字符串并返回它表示的時(shí)間值。 //布局通過(guò)顯示參考時(shí)間(定義為2006年1月2日星期一1:04:05 -0700 //如果它是值,則將被解釋;它作為一個(gè)例子 //輸入格式。然后將對(duì)輸入字符串。預(yù)定義的布局ANSIC,UnixDate,RFC3339等描述了參考時(shí)間的標(biāo)準(zhǔn)和便捷表示形式。有關(guān)格式和參考時(shí)間的定義的更多信息,請(qǐng)參見(jiàn)ANSIC文檔以及此程序包定義的其他常量。 //解析時(shí)間偏移為-0700的時(shí)間時(shí),如果偏移量對(duì)應(yīng)于當(dāng)前位置(本地)使用的時(shí)區(qū),則Parse在返回的時(shí)間中使用該位置和時(shí)區(qū)。否則,它將時(shí)間記錄為處于偽造位置,時(shí)間固定在給定的區(qū)域偏移量。 // //另外,Time.Format的可執(zhí)行示例詳細(xì)說(shuō)明了布局字符串的工作原理,是一個(gè)很好的參考。 // //值中省略的元素假定為零,或者 //零不可能為1,因此解析“ 3:04 pm”將返回時(shí)間 //對(duì)應(yīng)于1月1日,0,15:04:00 UTC(請(qǐng)注意,因?yàn)槟攴菔? //0,此時(shí)間早于零時(shí)間)。 //年份必須在0000..9999的范圍內(nèi)。將檢查星期幾的語(yǔ)法,否則將忽略該語(yǔ)法。 // //解析帶有MST等區(qū)域縮寫(xiě)的時(shí)間時(shí),如果該區(qū)域縮寫(xiě)在當(dāng)前位置具有已定義的偏移量,則使用該偏移量。 //區(qū)域縮寫(xiě)“ UTC”被識(shí)別為UTC,與位置無(wú)關(guān)。 //如果未知區(qū)域縮寫(xiě),則Parse將時(shí)間記錄為位于指定位置的偽造位置,并具有零偏移量。 //此選擇意味著可以使用相同的布局無(wú)損地解析和重新格式化這樣的時(shí)間,但是表示中使用的確切瞬間將因?qū)嶋H區(qū)域偏移而有所不同。為避免此類問(wèn)題,請(qǐng)首選使用數(shù)字區(qū)域偏移量的時(shí)間布局或使用ParseInLocation。 func Parse(layout, value string) (Time, error) { return parse(layout, value, UTC, Local) }
使用例子:
eg, err := time.Parse("2006-01-02 15:04:05 -0700 MST", "2019-08-29 16:48:21 +0800 CST") //輸出結(jié)果為time.Time格式 使用 format格式化后為 2019-08-29 16:48:21 ParseInLocation //ParseInLocation類似于Parse,但在兩個(gè)重要方面有所不同。 //首先,在沒(méi)有時(shí)區(qū)信息的情況下,Parse將時(shí)間解釋為UTC; //ParseInLocation將時(shí)間解釋為給定位置。 //第二,當(dāng)給定區(qū)域偏移量或縮寫(xiě)時(shí),Parse嘗試將其與本地位置進(jìn)行匹配; ParseInLocation使用給定的位置 func ParseInLocation(layout, value string, loc *Location) (Time, error) { return parse(layout, value, loc, loc) }
參數(shù): 1. 布局 2. 字符串 3. 時(shí)區(qū)
獲取本地時(shí)區(qū)可以使用 time.Local
使用例子:
onlineAt, err := time.ParseInLocation("2006-01-02T15:04", "2020-01-02T15:04"), time.Local)
解析為int64
對(duì)于 time.Time 對(duì)象,可以使用.Unix() 方法轉(zhuǎn)為 int64,如:
eg.Unix() //默認(rèn)使用 UTC時(shí)區(qū) eg.Local().Unix() //返回本地時(shí)區(qū)的時(shí)間戳 int64
參考文章: golang的時(shí)區(qū)和神奇的time.Parse
到此這篇關(guān)于Go各時(shí)間字符串使用解析的文章就介紹到這了,更多相關(guān)Go 時(shí)間字符串 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
go?mode?tidy出現(xiàn)報(bào)錯(cuò)go:?warning:?“all“?matched?no?package
使用go的時(shí)候我們一般都會(huì)使用go?mode管理,下面這篇文章主要給大家介紹了關(guān)于go?mode?tidy出現(xiàn)報(bào)錯(cuò)go:?warning:?“all“?matched?no?packages的解決方法,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08Go語(yǔ)言基礎(chǔ)函數(shù)包的使用學(xué)習(xí)
本文通過(guò)一個(gè)實(shí)現(xiàn)加減乘除運(yùn)算的小程序來(lái)介紹go函數(shù)的使用,以及使用函數(shù)的注意事項(xiàng),并引出了對(duì)包的了解和使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05Go 中 slice 的 In 功能實(shí)現(xiàn)探索
這篇文章主要介紹了Go 中 slice 的 In 功能實(shí)現(xiàn)探索,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09Go 標(biāo)準(zhǔn)庫(kù)增加metrics指標(biāo)探討分析
go中有一個(gè)神奇的標(biāo)準(zhǔn)庫(kù) runtime/metrics,提供了一系列預(yù)定義好的 Go 自身的相關(guān)指標(biāo),如果沒(méi)有編寫(xiě)過(guò)基礎(chǔ)監(jiān)控庫(kù)或者關(guān)注的比較少的朋友可能會(huì)沒(méi)接觸到這類指標(biāo),本文展開(kāi)現(xiàn)有metrics 指標(biāo),并結(jié)合現(xiàn)有的社區(qū)討論一起看看還有沒(méi)有必要增加更多的標(biāo)準(zhǔn)庫(kù)指標(biāo)2023-10-10Go語(yǔ)言實(shí)戰(zhàn)之實(shí)現(xiàn)均衡器功能
這篇文章主要為大家詳細(xì)介紹了如何利用Golang?實(shí)現(xiàn)一個(gè)簡(jiǎn)單的流浪均衡器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-04-04go語(yǔ)言規(guī)范RESTful?API業(yè)務(wù)錯(cuò)誤處理
這篇文章主要為大家介紹了go語(yǔ)言規(guī)范RESTful?API業(yè)務(wù)錯(cuò)誤處理方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03