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@H_301_36@ t :=time.Unix(1362984425,0)@H_301_36@
2@H_301_36@ nt := t.Format("2006-01-02 15:04:05")@H_301_36@
3@H_301_36@ fmt.Println(nt)@H_301_36@

用法二: 使用固定的字符串进行格式化获得time 对象

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

2 toString时间格式化 Formatting

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

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

猜你在找的Go相关文章