1. 程式人生 > >golang time的幾種用法

golang time的幾種用法

首先說明golang 語言設計設有個叫 XXnuts的傢伙,果然是個變態,把時間原點設計在了 2006-01-02 15:04:05

其實人家這個日期是有意義的:

2006-01-02T15:04:05Z07:00

每個數字的意義:

1 2 3 4 5 6 7
        
月 日 時 分 秒 年 時 區

常用的方法:

1 toTime格式化(Parsing):

   用法一: 使用毫秒數

1 t := time.Unix(1362984425, 0)
2 nt := t.Format("2006-01-02 15:04:05")
3 fmt.Println(nt)

   用法二: 使用固定的字串進行格式化獲得time 物件

1 const TimeFormat = "2006-01-02 15:04:05"
2 func TestXYZ(t *testing.T) {
3
4 t,err:=time.Parse(TimeFormat,"2013-08-11 11:18:46")
5 l.Println(t)
6 }

2 toString時間格式化 Formatting

01 package main
02
03 import (
04 "fmt"
05 "time"
06 )
07
08 func main() {
09 t := time.SecondsToLocalTime(1305861602)
10 t.ZoneOffset = -4*60*60
11 fmt.Println(t.Format("2006-01-02 15:04:05 -0700"))
12 }
13
14 // => "2011-05-20 03:20:02 -0400"

3 格式串型別 

當然如果上面沒有你要的格式化型別,那就看下面的附表:

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"
 
 // RFC822 with numeric zone RFC850      = "Monday, 02-Jan-06 15:04:05 MST"
    RFC822Z     = "02 Jan 06 15:04 -0700" 
    RFC1123     = "Mon, 02 Jan 2006 15:04:05 MST"
 
 // RFC1123 with numeric zone RFC3339     = "2006-01-02T15:04:05Z07:00"
    RFC1123Z    = "Mon, 02 Jan 2006 15:04:05 -0700" 
    RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
 
 // Handy time stamps. Stamp      = "Jan _2 15:04:05"
    Kitchen     = "3:04PM" 
    StampMilli = "Jan _2 15:04:05.000"
    StampMicro = "Jan _2 15:04:05.000000"
    StampNano  = "Jan _2 15:04:05.000000000"
)
原文:http://my.oschina.net/yinlei212/blog/151963