英文:
Go parse string to time
问题
我有以下字符串:
Sun, 03 Jan 2016 10:00:07 CET
我想将其解析为时间,但似乎无法弄清楚如何编写格式。
这是我目前的代码:
layout := "Mon, 01 Jan 03:04:05"
t, _ := time.Parse(layout, "Sun, 03 Jan 2016 10:00:07 CET")
fmt.Println(t)
我得到的输出是:
0001-01-01 00:00:00 +0000 UTC
英文:
I've got the following string:
Sun, 03 Jan 2016 10:00:07 CET
Id like to parse it into time, but cannot seem to figure out how to write the format.
This is what I've got so far:
layout := "Mon, 01 Jan 03:04:05"
t, _ := time.Parse(layout, "Sun, 03 Jan 2016 10:00:07 CET")
fmt.Println(t)
Output I get is:
0001-01-01 00:00:00 +0000 UTC
答案1
得分: 3
首先:你正在默默地忽略time.Parse
返回的错误作为第二个返回值。我建议适当地处理这个错误。
其次,让我们来看一下time.Parse
的文档:
Parse
函数解析一个格式化的字符串并返回它表示的时间值。布局定义了格式,通过展示如果Mon Jan 2 15:04:05 -0700 MST 2006
是值的话,它将如何被解释;它作为输入格式的示例。然后,相同的解释将被应用到输入字符串上。
time.Parse
函数期望它的layout
参数表示一个固定的示例日期。所以,为了解析日期Sun, 03 Jan 2016 10:00:07 CET
,适当的示例布局字符串应该是Mon, 02 Jan 2006 15:04:05 MST
:
layout := "Mon, 02 Jan 2006 15:04:05 MST"
t, err := time.Parse(layout, "Sun, 03 Jan 2016 10:00:07 CET")
if err != nil {
// 适当处理错误!
}
fmt.Println(t)
英文:
First of all: You're silently ignoring the error this is returned as second return value of time.Parse
. I'd suggest handling the error appropriately, instead.
Secondly, let's have a look at the documentation of time.Parse
:
>Parse
parses a formatted string and returns the time value it represents. The layout defines the format by showing how the reference time, defined to be Mon Jan 2 15:04:05 -0700 MST 2006
would be interpreted if it were the value; it serves as an example of the input format. The same interpretation will then be made to the input string.
The time.Parse
function expects its layout
parameter to represent a fixed example date. So, in order to parse the date Sun, 03 Jan 2016 10:00:07 CET
, the appropriate example layout string should be Mon, 02 Jan 2006 15:04:05 MST
:
layout := "Mon, 02 Jan 2006 15:04:05 MST"
t, err := time.Parse(layout, "Sun, 03 Jan 2016 10:00:07 CET")
if err != nil {
// handle the error somehow!
}
fmt.Println(t)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论