时间,时间戳,时间的格式化和解析_第1页
时间,时间戳,时间的格式化和解析_第2页
时间,时间戳,时间的格式化和解析_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、时间,时间戳,时间的格式化和解析时间代码实例/ Go 对时间和时间段提供了大量的支持; 这里是一些例子。package mainimport "fmt"import "time"func main() p := fmt.Println/ 得到当前时间。now := time.Now()p(now)/ 通过提供年月日等信息,你可以构建一个time 。时间总/ 是关联着位置信息,例如时区。then := time.Date(2009, 11, 17, 20, 34, 58, 651387237, time.UTC)p(then)/ 你可以提取出时间的各个组成

2、部分。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 :=

3、 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)运行程序$ go run time.go2012-10-31 15:50:13.793654 +0000 UTC2009-11-17 20:34:58.651387237 +0000 UTC2009November17203458

4、651387237UTCTuesdaytruefalsefalse25891h15m15.142266763s25891.254206185211.5534752523711128e+069.320851514226677e+072012-10-31 15:50:13.793654 +0000 UTC2006-12-05 01:19:43.509120474 +0000 UTC# 下面我们将看到时间到 Unix 时间的相关概念。时间戳代码实例/ 一般程序会有获取 Unix 时间/ 的秒数,毫秒数,或者微秒数的需要。 来看看如何用 Go 来实现。package mainimport "

5、fmt"import "time"func main() / 分别使用带Unix或者UnixNano的time.Now/ 来获取从自 协调世界时/ 起到现在的秒数或者纳秒数。now := time.Now()secs := now.Unix()nanos := now.UnixNano()fmt.Println(now)/ 注意UnixMillis是不存在的,所以要得到毫秒数的话,/ 你要自己手动的从纳秒转化一下。millis := nanos / 1000000fmt.Println(secs)fmt.Println(millis)fmt.Println(nan

6、os)/ 你也可以将协调世界时起的整数秒或者纳秒转化到相应的时间。fmt.Println(time.Unix(secs, 0)fmt.Println(time.Unix(0, nanos)运行程序$ go run epoch.go2012-10-31 16:13:58.292387 +0000 UTC13517000382012-10-31 16:13:58 +0000 UTC2012-10-31 16:13:58.292387 +0000 UTC# 下面我们将看看另一个事件相关的任务:时间格式化和解析。时间的格式化和解析代码实例/ Go 支持通过基于描述模板的时间格式化和解析。package

7、 mainimport "fmt"import "time"func main() 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 使用基于例子的形式来决定日期格式,/ 一般你只要使

8、用 time 包中提供的模式常量就行了,但是你/ 也可以实现自定义模式。模式必须使用时间MonJan 2 15:04:05 MST 2006/ 来指定给定时间 /字符串的格式化 /解析方式。时间一定要按照/ 如下所示: 2006 为年, 15 为小时, Monday 代表星期几,等等。p(t.Format("3:04PM")p(t.Format("Mon Jan _2 15:04:05 2006") p(t.Format("2006-01-02T15:04:05.999999-07:00") form := "3 04 PM

9、"t2, e := time.Parse(form, "8 41 PM")p(t2)/ 对于纯数字表示的时间,你也可以使用标准的格式化字/ 符串来提出出时间值得组成。fmt.Printf("%d-%02d-%02dT%02d:%02d:%02d-00:00n", t.Year(), t.Month(), t.Day(),t.Hour(), t.Minute(), t.Second()/ Parse 函数在输入的时间格式不正确是会返回一个/ 错误。ansic := "Mon Jan _2 15:04:05 2006"_, e = time.Parse(ansic, "8:41PM")p(e)运行程序$ go run time-formatting-parsing.go2014-04-15T18:00:15-07:002012-11-01 22:08:41 +0000 +00006:00PMTue Apr 15 18:00:15 20142014-04-15T18:00:15.161182-07:000000-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论