时间时间戳时间的格式化和解析.docx

上传人:b****2 文档编号:488265 上传时间:2023-04-29 格式:DOCX 页数:7 大小:16.11KB
下载 相关 举报
时间时间戳时间的格式化和解析.docx_第1页
第1页 / 共7页
时间时间戳时间的格式化和解析.docx_第2页
第2页 / 共7页
时间时间戳时间的格式化和解析.docx_第3页
第3页 / 共7页
时间时间戳时间的格式化和解析.docx_第4页
第4页 / 共7页
时间时间戳时间的格式化和解析.docx_第5页
第5页 / 共7页
时间时间戳时间的格式化和解析.docx_第6页
第6页 / 共7页
时间时间戳时间的格式化和解析.docx_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

时间时间戳时间的格式化和解析.docx

《时间时间戳时间的格式化和解析.docx》由会员分享,可在线阅读,更多相关《时间时间戳时间的格式化和解析.docx(7页珍藏版)》请在冰点文库上搜索。

时间时间戳时间的格式化和解析.docx

时间时间戳时间的格式化和解析

时间,时间戳,时间的格式化和解析

时间

代码实例

//Go对时间和时间段提供了大量的支持;这里是一些例子。

packagemain

import"fmt"

import"time"

funcmain(){

p:

=fmt.Println

//得到当前时间。

now:

=time.Now()

p(now)

//通过提供年月日等信息,你可以构建一个`time`。

时间总

//是关联着位置信息,例如时区。

then:

=time.Date(

2009,11,17,20,34,58,651387237,time.UTC)

p(then)

//你可以提取出时间的各个组成部分。

p(then.Year())

p(then.Month())

p(then.Day())

p(then.Hour())

p(then.Minute())

p(then.Second())

p(then.Nanosecond())

p(then.Location())

//输出是星期一到日的`Weekday`也是支持的。

p(then.Weekday())

//这些方法来比较两个时间,分别测试一下是否是之前,

//之后或者是同一时刻,精确到秒。

p(then.Before(now))

p(then.After(now))

p(then.Equal(now))

//方法`Sub`返回一个`Duration`来表示两个时间点的间

//隔时间。

diff:

=now.Sub(then)

p(diff)

//我们计算出不同单位下的时间长度值。

p(diff.Hours())

p(diff.Minutes())

p(diff.Seconds())

p(diff.Nanoseconds())

//你可以使用`Add`将时间后移一个时间间隔,或者使

//用一个`-`来将时间前移一个时间间隔。

p(then.Add(diff))

p(then.Add(-diff))

}

运行程序

$goruntime.go

2012-10-3115:

50:

13.793654+0000UTC

2009-11-1720:

34:

58.651387237+0000UTC

2009

November

17

20

34

58

651387237

UTC

Tuesday

true

false

false

25891h15m15.142266763s

25891.25420618521

1.5534752523711128e+06

9.320851514226677e+07

93208515142266763

2012-10-3115:

50:

13.793654+0000UTC

2006-12-0501:

19:

43.509120474+0000UTC

#下面我们将看到时间到Unix时间的相关概念。

时间戳

代码实例

//一般程序会有获取[Unix时间](http:

//zh.wikipedia.org/wiki/UNIX%E6%97%B6%E9%97%B4)

//的秒数,毫秒数,或者微秒数的需要。

来看看如何用Go来实现。

packagemain

import"fmt"

import"time"

funcmain(){

//分别使用带`Unix`或者`UnixNano`的`time.Now`

//来获取从自[协调世界时](http:

//zh.wikipedia.org/wiki/%E5%8D%94%E8%AA%BF%E4%B8%96%E7%95%8C%E6%99%82)

//起到现在的秒数或者纳秒数。

now:

=time.Now()

secs:

=now.Unix()

nanos:

=now.UnixNano()

fmt.Println(now)

//注意`UnixMillis`是不存在的,所以要得到毫秒数的话,

//你要自己手动的从纳秒转化一下。

millis:

=nanos/1000000

fmt.Println(secs)

fmt.Println(millis)

fmt.Println(nanos)

//你也可以将协调世界时起的整数秒或者纳秒转化到相应的时间。

fmt.Println(time.Unix(secs,0))

fmt.Println(time.Unix(0,nanos))

}

运行程序

$gorunepoch.go

2012-10-3116:

13:

58.292387+0000UTC

1351700038

135********92

135********92387000

2012-10-3116:

13:

58+0000UTC

2012-10-3116:

13:

58.292387+0000UTC

#下面我们将看看另一个事件相关的任务:

时间格式化和解析。

时间的格式化和解析

代码实例

//Go支持通过基于描述模板的时间格式化和解析。

packagemain

import"fmt"

import"time"

funcmain(){

p:

=fmt.Println

//这里是一个基本的按照RFC3339进行格式化的例子,使用

//对应模式常量。

t:

=time.Now()

p(t.Format(time.RFC3339))

//时间解析使用同`Format`相同的形式值。

t1,e:

=time.Parse(

time.RFC3339,

"2012-11-01T22:

08:

41+00:

00")

p(t1)

//`Format`和`Parse`使用基于例子的形式来决定日期格式,

//一般你只要使用`time`包中提供的模式常量就行了,但是你

//也可以实现自定义模式。

模式必须使用时间`MonJan215:

04:

05MST2006`

//来指定给定时间/字符串的格式化/解析方式。

时间一定要按照

//如下所示:

2006为年,15为小时,Monday代表星期几,等等。

p(t.Format("3:

04PM"))

p(t.Format("MonJan_215:

04:

052006"))

p(t.Format("2006-01-02T15:

04:

05.999999-07:

00"))

form:

="304PM"

t2,e:

=time.Parse(form,"841PM")

p(t2)

//对于纯数字表示的时间,你也可以使用标准的格式化字

//符串来提出出时间值得组成。

fmt.Printf("%d-%02d-%02dT%02d:

%02d:

%02d-00:

00\n",

t.Year(),t.Month(),t.Day(),

t.Hour(),t.Minute(),t.Second())

//`Parse`函数在输入的时间格式不正确是会返回一个

//错误。

ansic:

="MonJan_215:

04:

052006"

_,e=time.Parse(ansic,"8:

41PM")

p(e)

}

运行程序

$goruntime-formatting-parsing.go

2014-04-15T18:

00:

15-07:

00

2012-11-0122:

08:

41+0000+0000

6:

00PM

TueApr1518:

00:

152014

2014-04-15T18:

00:

15.161182-07:

00

0000-01-0120:

41:

00+0000UTC

2014-04-15T18:

00:

15-00:

00

parsingtime"8:

41PM"as"MonJan_215:

04:

052006":

...上一节下一节动手实践是学习IT技术最有效的方式!

开始实验

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2