Ruby on rails 如何在Ruby中解析缩写日期?
我在Rails 4.0.2应用程序中使用Ruby 2.1。我需要将字符串转换为有效的日期对象,但我尝试的所有操作都表明它是无效的日期: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
# 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相同的日期格式。也许我看错了。对,虽然一般来说,当答案在时间上相距那么远时,我们会尽量避免回答我的问题:对,虽然一般来说,当答案在时间上相距那么远时,我们会尽量避免回答我的问题: