03.7.2 解析时间的代码示例
本节将介绍parseTime.go
,这段代码接收一个命令行参数,并将其由string
类型转换成time
类型。该代码分为三部分,仅是为了演示time.Parse()
,可能会因为你的输入格式不正确而报错。
第一部分:
第二部分:
最后一部分是展现神奇的代码:
可以看到,为了解析一个包含小时和分钟的字符串,你需要使用常量来构建格式"15:04"。返回值err
能够告诉你我们的解析是否成功。
执行parseTime.go
后我们得到:
$ go run parseTime.go
usage: parseTime string
exit status 1
$ go run parseTime.go 12:10
Full 0000-01-01 12:10:00 +0000 UTC Time 12 10
可以看到Go将整个时间(Full 0000-01-01 12:10:00 +0000 UTC)都打印出来了,这是因为time.Parse()
返回值是时间类型的变量。如果你只关心具体时间而不是日期,你应该只打印你关心的time
变量部分。
如果你没有按照Go规定的时间常量来格式化你的字符串,例如使用22:04
作为第一个参数,你就会得到下面的错误信息:
$ go run parseTime.go
parsing time "12:10" as "22:04" : cannot parse ":10" as "2"
或者,如果你使用了用来处理月份的11
来格式化,可能得到下面的错误信息:
$ go run parseTime.go 12:10
parsing time "12:10": month out of range
Last updated