【问题标题】:GO Parsing Custom TimeGO解析自定义时间
【发布时间】:2020-08-14 10:24:45
【问题描述】:

我正在尝试使用自定义格式解析日期 - ddmmmyyyy。例如:

15may1997
dd 15 
mmm may 
yyyy 1997

这是我的代码:

const customFormat = "02jan2006"
t, err := time.Parse(customFormat, "15may1997")
if err != nil {
    fmt.Println(err)
}

这是输出:

parsing time "15may1997" as "02jan2006": cannot parse "may1997" as "jan"

只有换天才能解析成功:

t, err := time.Parse(customFormat, "15jan2006")

我尝试阅读 thisthis 以及更多文章,但不知道如何自定义我的格式。

我在这里做错了什么?

谢谢。

【问题讨论】:

  • “可识别的星期格式为“Mon”和“Monday”。可识别的月份格式为“Jan”和“January”。” 即使用Jan而不是janplay.golang.com/p/ndO8Vf1MkIQ
  • 你是绝对正确的 :) 谢谢 mkoprita

标签: go time


【解决方案1】:

Golang time.Parse 根据布局解析格式化的字符串,返回它所代表的时间值。定义格式的布局区分大小写,并且有固定的预定义值。

因此您需要将 customFormat = "02jan2006" 更新为 "02Jan2006"

以下是日期时间不同部分的区分大小写的占位符列表。

--------------- + ------------ +
Type            | Placeholder  |
--------------- + ------------ +
Year            | 2006         |
Year            | 06           | 
Month           | 01           |
Month           | 1            |
Month           | Jan          |
Month           | January      |
Day             | 02           |
Day             | 2            |
Week day        | Mon          |
Week day        | Monday       |
Hours           | 03           |
Hours           | 3            |
Hours           | 15           |
Minutes         | 04           |
Minutes         | 4            |
Seconds         | 05           | 
Seconds         | 5            |
AM or PM        | PM           | 
Miliseconds     | .000         |
Microseconds    | .000000      |
Nanoseconds     | .000000000   |
Timezone offset | -0700        |
Timezone offset | -07:00       |   
Timezone offset | Z0700        |  
Timezone offset | Z07:00       |   
Timezone        | MST          |
--------------- + ------------ +

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 2012-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多