当前位置: 首页 > 知识库问答 >
问题:

将 RFC-3339 日期字符串解析为时间。时间 [重复]

邓子濯
2023-03-14

如何将字符串日期格式转换为日期,我有格式为以下格式的日期字符串:

YYYY-MM-DD 

接下来,我尝试了,但没有运气。

t, err := time.Parse("%Y-%m-%d", "2011-01-19")
t, err := time.Parse("YYYY-MM-DD", "2011-01-19")
t, err := time.Parse("2016-01-20", "2011-01-19")

所有上述语句都存在解析错误。

共有2个答案

支华池
2023-03-14

除了使用文字2006-01-02时间格式外,您还可以通过创建一个类似于Go在time包中的方式的常量来减少错误。

YYYY-MM-DD 格式在 RFC-3339 中定义完整日期,如下所示(顺序调整):

full-date       = date-fullyear "-" date-month "-" date-mday
date-fullyear   = 4DIGIT
date-month      = 2DIGIT  ; 01-12
date-mday       = 2DIGIT  ; 01-28, 01-29, 01-30, 01-31 based on
                          ; month/year

因此,您可以创建如下所示的常量来配合内置时间。RFC3339时间。RFC3339钠常量。

const RFC3339FullDate = "2006-01-02"

然后你可以写如下:

t, err := time.Parse(RFC3339FullDate, "2011-01-19")

这是在mogo/time/timeutil包中,所以你可以写:

t, err := time.Parse(timeutil.RFC3339FullDate, "2011-01-19")

作为参考,time/format.go包含以下常量:

const (
    ANSIC       = "Mon Jan _2 15:04:05 2006"
    UnixDate    = "Mon Jan _2 15:04:05 MST 2006"
    RubyDate    = "Mon Jan 02 15:04:05 -0700 2006"
    RFC822      = "02 Jan 06 15:04 MST"
    RFC822Z     = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone
    RFC850      = "Monday, 02-Jan-06 15:04:05 MST"
    RFC1123     = "Mon, 02 Jan 2006 15:04:05 MST"
    RFC1123Z    = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone
    RFC3339     = "2006-01-02T15:04:05Z07:00"
    RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
    Kitchen     = "3:04PM"
    // Handy time stamps.
    Stamp      = "Jan _2 15:04:05"
    StampMilli = "Jan _2 15:04:05.000"
    StampMicro = "Jan _2 15:04:05.000000"
    StampNano  = "Jan _2 15:04:05.000000000"
)
松波
2023-03-14

请阅读当时的文档。解析:

布局通过显示如何将参考时间定义为

Mon Jan 2 15:04:05-0700 MST 2006

如果它是值,将被解释;它用作输入格式的示例。然后将对输入字符串进行相同的解释。

所以正确的格式是

t, err := time.Parse("2006-01-02", "2011-01-19")
 类似资料:
  • 我尝试在Go中解析日期字符串< code >“2014-09-12t 11:45:26.371 z”。该时间格式定义为: RFC-3339日期时间 ISO-8601日期时间 密码 我得到了这个错误: 解析时间“2014-11-12T11:47:39.489Z”:月超出范围 如何解析这个日期字符串?

  • 我有一个字符串时间格式。我没有找到任何格式来解析这个字符串值。有没有办法将这个字符串值转换为Gotime.Time? 编辑 - 这不是重复的问题。我知道如何解析,但我不知道我们可以使用时间格式包中列出的任何布局。这个答案清除了我的涂鸦。

  • 本实例演示了如何通过DateFormat类的parse方法根据不同的本地环境解析日期/时间字符串,并将其转换成Date对象。在最后还演示了parse方法如何解析不符合日期/时间逻辑的字符串。 例子 : 解析日期/时间字符串 实例的代码如下: package chapter8; import java.text.DateFormat; import java.util.Date; import ja

  • 问题内容: 有没有一种简单的方法可以将RFC 3339时间转换为常规Python时间戳? 我有一个脚本正在读取ATOM提要,并且我希望能够将ATOM提要中项目的时间戳与文件的修改时间进行比较。 我从ATOM规范中注意到,ATOM日期包含时区偏移量(),但就我而言,之后没有任何内容,因此我想我们可以假设格林尼治标准时间。 我想我可以用某种正则表达式来解析时间,但是我希望Python有一种内置的方式,

  • 我尝试将格式为“23.1.2020”的字符串解析为DateTime对象,但没有任何效果。我尝试使用一些包,如intl或date_format,但这些都不能完成这项工作。 你知道怎么分析这个吗?

  • 问题内容: 我遇到了将“星期几”字符串转换为值的问题。我找不到包中内置的任何内容。 然后,我编写了这个简单的函数(满足了我的需求): 还有其他 建议 或 更惯用的 方式在Golang中执行此转换吗? 谢谢! 问题答案: 前言: 我在中发布了此实用程序,请参见。 是的,使用映射而不是数组,因此查找更快,更简单: 测试它: 输出(在Go Playgorund上尝试): 小费: 您甚至可以使用循环来安全