首先说明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 main import ( "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" )
有疑问加站长微信联系(非本文作者)