golang time包相關的一些問題


獲取毫秒時間戳

//第一種
time.Now().UnixNano() / int64(time.Millisecond)
//第二種
time.Now().UnixNano() / 1e6

time.Unix()用法

//函數定義
func Unix(sec int64, nsec int64) Time 
  • unix有兩個參數

  • 第一個參數秒級的時間戳

  • 第二個參數是納秒

  • 當使用sec時,把nsec置為0,使用nsec時把sec置為0

//秒時間戳->Time
time.Unix(1564063799, 0)
//納秒時間戳->Time
time.Unix(0, 1564063799695197200)
//毫秒時間戳->Time
time.Unix(0, 1564063799695*int64(time.Millisecond))

Time.Format

format默認使用的時本地時區,如果要指定時區方式如下

var cstZone = time.FixedZone("CST", 8*3600)       // 東八
time.Now().In(cstZone).Format("2006-01-02 15:04:05")

Time.Parse

time.Parse() 只會在參數里有指明時區信息、時區信息以 zone offset 形式(如 2018-01-01 12:11:11 +0800 CST)表示、表示結果與本地時區等價時,才會使用本地時區,否則使用讀出的時區。若參數里沒有指明時區信息,則使用 UTC 時間。所以一般建議使用time.ParseInLocation()

time.ParseInLocation("2006-01-02 15:04:05", "2018-01-01 12:11:11",time.Local)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM