`Date.strptime`意外行为

时间:2015-12-20 12:39:15

标签: ruby

我尝试使用"01.09 2015"解析字符串"%d.%m %y",但它返回年2020

require 'date'

year = Time.now.year.to_s # => "2015"
ny = (Time.now.year+1).to_s # => "2016"
sem = "01.09"
Date.strptime(sem+" "+year, "%d.%m %y")
# => #<Date: 2020-09-01 ((2459094j,0s,0n),+0s,2299161j)>

我不知道这里发生了什么。

1 个答案:

答案 0 :(得分:0)

您需要将%y(意为year % 100 (00..99))替换为%Y 4位数年):

Date.strptime("01.09 2015", "%d.%m %Y")