我有一个格式为05/22/2011 13:10 Eastern Time (US & Canada)
的日期
如何将其转换为日期对象?这是我用来解析刺痛日期的方法,但我收到无效的日期错误。
str = "05/22/2011 13:10 Eastern Time (US & Canada)"
Date.strptime(str, "%d/%m/%Y %H:%M:%S %Z")
你的刺痛:05/22/2011 13:10 Eastern Time (US & Canada)
.
以下是您的模式中的一些错误:
- 月份是第一个参数
- 一天是一秒
- 这里没有任何秒数,只有小时和分钟
此外,您的字符串还包括日期和时间,因此您最好使用DateTime
类而不是Date
类:
Date.strptime(str, "%m/%d/%Y %H:%M %Z")
#=> Sun, 22 May 2011
或
DateTime.strptime(str, "%m/%d/%Y %H:%M %Z")
#=> Sun, 22 May 2011 13:10:00 -0500
要使用日期时间,您应该首先需要它:
require 'date'
dt = DateTime.strptime("05/22/2011 13:10 Eastern Time (US & Canada)", "%m/%d/%Y %H:%M %Z")
#=> #<DateTime: 353621413/144,-5/24,2299161>
dt.to_s
#=> "2011-05-22T13:10:00-05:00"
dt.hour
#=> 13
...
调用 Date.strptime 时有 2 个错误
1)日期和月份颠倒
2)字符串中没有秒字段