一般在獲取到時(shí)間字符串,需要將時(shí)間字符串格式化為golang的"time.Time"對(duì)象的時(shí)候,通常有2個(gè)函數(shù),分別是。
1
2
|
time.Parse(layout, value string) (Time, error) time.ParseInLocation(layout, value string, loc *Location) (Time, error) |
兩個(gè)函數(shù)相比,不一樣的地方在于,Parse()函數(shù)解析的時(shí)候,會(huì)默為UTC時(shí)間,獲取的Time對(duì)象轉(zhuǎn)換為Unix()對(duì)象后,會(huì)比當(dāng)前時(shí)間多8小時(shí)。
1
|
tm, err := time.Parse("2006-01-02T15:04:05Z", s) //轉(zhuǎn)換后的時(shí)間,如果再轉(zhuǎn)換為unix時(shí)間,需要-8小時(shí) |
如果解析來(lái)源是GMT的時(shí)間的話(huà),最好使用ParseInLocation(),并指定"*Location"為“time.Local”,比如:
1
|
tm, err = time.ParseInLocation("2006-01-02T15:04:05Z", s, time.Local) //轉(zhuǎn)換后的時(shí)間如果再轉(zhuǎn)換為unix時(shí)間,不需要處理。 |
以上這篇基于golang時(shí)間轉(zhuǎn)換的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。