Ruby on rails 如何在Ruby中解析缩写日期?

Ruby on rails 如何在Ruby中解析缩写日期?,ruby-on-rails,ruby,date,Ruby On Rails,Ruby,Date,我在Rails 4.0.2应用程序中使用Ruby 2.1。我需要将字符串转换为有效的日期对象,但我尝试的所有操作都表明它是无效的日期: # in irb date = 'Feb 9' Date.strptime(date, '%m %-d') # NoMethodError: undefined method `strptime' for Date:Class # in Rails console date = 'Feb 9' Date.strptime(date, '%m %-d') # A

我在Rails 4.0.2应用程序中使用Ruby 2.1。我需要将字符串转换为有效的日期对象,但我尝试的所有操作都表明它是无效的日期:

# in irb
date = 'Feb 9'
Date.strptime(date, '%m %-d')
# NoMethodError: undefined method `strptime' for Date:Class

# in Rails console
date = 'Feb 9'
Date.strptime(date, '%m %-d')
# ArgumentError: invalid date
#   from (irb):2:in `strptime'

date += ' ' + Time.now.year.to_s
Date.strptime(date, '%m %-d %Y')
# ArgumentError: invalid date

如何以这种缩写格式解析日期?

二月不是有效的月份号

[1] pry(main)> date = 'Feb 9'
"Feb 9"
[2] pry(main)> Date.strptime(date, "%b %d")
Sun, 09 Feb 2014
例如:


二月不是有效的月份号

[1] pry(main)> date = 'Feb 9'
"Feb 9"
[2] pry(main)> Date.strptime(date, "%b %d")
Sun, 09 Feb 2014
例如:


格式字符串错误,应为:

require 'date'
date = 'Feb 9'
Date.strptime(date, '%b %d').to_s
# => "2014-02-09"
%m将匹配月份编号1-12,%b根据当前区域设置匹配缩写月份名称。如前所述,可用的格式记录在手册页面中

或使用以下方法:

更新:我以前没有注意到,匹配未添加的天数的-modifier会打断strtime:


格式字符串错误,应为:

require 'date'
date = 'Feb 9'
Date.strptime(date, '%b %d').to_s
# => "2014-02-09"
%m将匹配月份编号1-12,%b根据当前区域设置匹配缩写月份名称。如前所述,可用的格式记录在手册页面中

或使用以下方法:

更新:我以前没有注意到,匹配未添加的天数的-modifier会打断strtime:


您可以直接解析日期:

date = 'Feb 9'

Date.parse date

您可以直接解析日期:

date = 'Feb 9'

Date.parse date

我在d之前看到了“%m%-d”a-这不是required@NitinJ并且很可能会破坏strtime,-表示strftime。在strftime的文档中,它表示它使用与strftime相同的日期格式。也许我看错了。我看到的是“%m%-d”a-在d之前,这不是required@NitinJ并且很可能会破坏strtime,-表示strftime。在strftime的文档中,它表示它使用与strftime相同的日期格式。也许我看错了。对,虽然一般来说,当答案在时间上相距那么远时,我们会尽量避免回答我的问题:对,虽然一般来说,当答案在时间上相距那么远时,我们会尽量避免回答我的问题: