我正在尝试创建一个基于名为dateAdded的输入的时间结构。我的代码是这样的:
dateAdded := "November 25, 2016"
layout := "September 9, 2016"
t, err := time.Parse(layout, dateAdded)
if err != nil {
fmt.Println(err)
} else {
fmt.Println(t)
}我得到以下错误:将时间“2016年11月25日”解析为“2016年9月9日”:无法将“2016年11月25日”解析为“9月9日”,
我假设Parse函数不能解析每个布局,但我很好奇读取日期并将其解析为time对象的通常方法是什么。
发布于 2016-11-28 09:06:34
你的布局日期错了。应该是"January 2, 2006"。正如说明书上说的:
布局通过显示定义为
Mon Jan 2 15:04:05 -0700 MST 2006的引用时间(如果它是值)来定义格式。
发布于 2016-11-28 09:00:47
如果您没有使用时间模块附带的预先包含的常量布局之一,则布局必须由精确的时间戳Mon Jan 2 15:04:05 -0700 MST 2006形成。请注意,它的每个元素都是唯一的,因此可以自动解析每个数字标识符。基本上是1(月),2(日),3(小时),4(分钟),5(2),6(年),7(时区)等等。
最好使用库中包含的预定义标准布局之一:
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"
)发布于 2016-11-28 09:32:14
你应该把它当作你提供给time.Provide的一个例子。它应该具有在文件中描述的具体价值。
解析格式化字符串并返回它表示的时间值。布局通过显示引用时间(定义为 星期一一月二日15:04:05 -0700 MST 2006
https://stackoverflow.com/questions/40840316
复制相似问题