Golang中time包用法

time包中包括两类时间
  • 时间点(某一时刻)
  • 时常(某一段时间)
时间常量(时间格式化)
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"
)

这些常量是在time包中进行time 格式化 和time解析而预定义的一些常量,其实他们使用的都是一个特定的时间:
Mon Jan 2 15:04:05 MST 2006
这个时间是Unix time 1136239445,因为MST是GMT-0700,所以这个指定的时间也可以看做
01/02 03:04:05PM '06 -0700
可见程序猿也有调皮的一面. 因此我们只需要利用上面这些时间变可以随意的指定自己的时间格式,例如:
layout := "01__02-2006 3.04.05 PM" fmt.Println(time.Now().Format(layout))

便会输出类似的时间:11__26-2014 8.40.00 PM

取时间格式到3位毫秒

log.Println(time.Now().Format("2006-01-02 15:04:05.999"))

郝先生

继续阅读此作者的更多文章