這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
首先說明golang 語言設計設有個叫 XXnuts的傢伙,果然是個變態,把時間原點設計在了 2006-01-02 15:04:05
其實人家這個日期是有意義的:
2006-01-02T15:04:05Z07:00
每個數位意義:
1 2 3 4 5 6 7 月 日 時 分 秒 年 時 區
常用的方法:
1 toTime格式化(Parsing):
用法一: 使用毫秒數
t := time.Unix(1362984425, 0)nt := t.Format("2006-01-02 15:04:05")fmt.Println(nt)
用法二: 使用固定的字串進行格式化獲得time 對象
const TimeFormat = "2006-01-02 15:04:05"func TestXYZ(t *testing.T) {t,err:=time.Parse(TimeFormat,"2013-08-11 11:18:46")l.Println(t)}
2 toString時間格式化 Formatting
package mainimport ( "fmt" "time")func main() { t := time.SecondsToLocalTime(1305861602) t.ZoneOffset = -4*60*60 fmt.Println(t.Format("2006-01-02 15:04:05 -0700"))}// => "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")