golang time包相关的一些问题

Posted ahmczsy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

以上是关于golang time包相关的一些问题的主要内容,如果未能解决你的问题,请参考以下文章

golang 进程创建,fork,以及热重启(无缝升级)

Golang 包01,时间 time

Golang 包01,时间 time

Golang入门到项目实战 golang并发编程之runtime包

golang的time包管理

Golang标准包time总结