Ruby on rails 在Date.strtime中更改yy年的世纪

Ruby on rails 在Date.strtime中更改yy年的世纪,ruby-on-rails,ruby,date,Ruby On Rails,Ruby,Date,我有一个字符串,格式为“mmddyy”(例如:“011467”)。此字符串表示出生日期。现在,我想将其解析为日期对象,因此我使用了: Date.strptime('011467', '%m%d%y') 然而,这产生了2067年1月14日,而不是预期的1967年1月14日。如何更改strtime的世纪?问题在于截止到今天的日期,其格式可能为“071717”,在这种情况下2017年7月17日是一个有效日期。(在我们的应用程序中,我们不希望年龄超过100岁的人——但是,如果这种人出现在那里,他/她可

我有一个字符串,格式为
“mmddyy”
(例如:
“011467”
)。此字符串表示出生日期。现在,我想将其解析为日期对象,因此我使用了:

Date.strptime('011467', '%m%d%y')
然而,这产生了2067年1月14日,而不是预期的1967年1月14日。如何更改strtime的世纪?问题在于截止到今天的日期,其格式可能为
“071717”
,在这种情况下
2017年7月17日是一个有效日期。(在我们的应用程序中,我们不希望年龄超过100岁的人——但是,如果这种人出现在那里,他/她可以很容易地更改出生年份)。

不接受格式,但接受格式

此外,您还需要手动调整年份

%w|011467 011417|.map do |s|
  Date.strptime(
    s.gsub(/\d{2}\z/) do |m|
      (m.to_i <= Date.today.year.to_s[/\d{2}\z/].to_i ? "20" : "19") << m
    end, '%m%d%Y')
}
#⇒ [
#   [0] #<Date: 1967-01-14 ((2439505j,0s,0n),+0s,2299161j)>,
#   [1] #<Date: 2017-01-14 ((2457768j,0s,0n),+0s,2299161j)>
# ]
%w | 011467 011417 |。地图do | s|
Date.strtime(
s、 gsub(/\d{2}\z/)do|m|
(m.to_i)