go语言中time包的各种函数总结.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

go语言中time包的各种函数总结

目录前言时间类型Location和timezone时间间隔AddsubBeforeAfter定时器时间格式化时间格式化的时间总结

前言

在我们开发的过程中,每个项目都需要时间这一类的函数,此时,对time这个包的研究深度就显得尤为重要,现在,对time包中的各种函数做出一个总结,加深一些记忆,

时间类型

Go语言中,time.Time类型表示时间。我们可以通过time.Now函数获取当前时间的对象,然后从时间对象中获取到年,月,日,时,分,秒等信息,代码如下

//timeDemo时间对象的年月日时分秒

functimeDemo(){

now:=time.Now()//获取当前时间

fmt.Printf(currenttime:%v\n,now)

year:=now.Year()//年

month:=now.Month()//月

day:=now.Day()//日

hour:=now.Hour()//小时

minute:=now.Minute()//分钟

second:=now.Second()//秒

fmt.Println(year,month,day,hour,minute,second)

Location和timezone

Go语言中使用location来映射具体的时区。时区(TimeZone)是根据世界各国家与地区不同的经度而划分的时间定义,全球共分为24个时区。中国差不多跨5个时区,但为了使用方便只用东八时区的标准时即北京时间为准。

下面的示例代码中使用beijing来表示东八区8小时的偏移量,其中time.FixedZone和time.LoadLocation`这两个函数则是用来获取location信息。

//timezoneDemo时区示例

functimezoneDemo(){

//中国没有夏令时,使用一个固定的8小时的UTC时差。

//对于很多其他国家需要考虑夏令时。

secondsEastOfUTC:=int((8*time.Hour).Seconds())

//FixedZone返回始终使用给定区域名称和偏移量(UTC以东秒)的Location。

beijing:=time.FixedZone(BeijingTime,secondsEastOfUTC)

//如果当前系统有时区数据库,则可以加载一个位置得到对应的时区

//例如,加载纽约所在的时区

newYork,err:=time.LoadLocation(America/New_York)//UTC-05:00

iferr!=nil{

fmt.Println(loadAmerica/New_Yorklocationfailed,err)

return

fmt.Println()

//加载上海所在的时区

//shanghai,err:=time.LoadLocation(Asia/Shanghai)//UTC+08:00

//加载东京所在的时区

//tokyo,err:=time.LoadLocation(Asia/Tokyo)//UTC+09:00

//创建时间对象需要指定位置。常用的位置是time.Local(当地时间)和time.UTC(UTC时间)。

//timeInLocal:=time.Date(2009,1,1,20,0,0,0,time.Local)//系统本地时间

timeInUTC:=time.Date(2009,1,1,12,0,0,0,time.UTC)

sameTimeInBeijing:=time.Date(2009,1,1,20,0,0,0,beijing)

sameTimeInNewYork:=time.Date(2009,1,1,7,0,0,0,newYork)

//北京时间(东八区)比UTC早8小时,所以上面两个时间看似差了8小时,但表示的是同一个时间

timesAreEqual:=timeInUTC.Equal(sameTimeInBeijing)

fmt.Println(timesAreEqual)

//纽约(西五区)比UTC晚5小时,所以上面两个时间看似差

文档评论(0)

135****5541 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档