您的位置:首页 > 编程语言 > Go语言

golang time的几种用法

2014-05-05 10:01 417 查看
首先说明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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: