`Date.strptime`意外行为

  • 本文关键字:strptime Date 意外 ruby
  • 更新时间 :
  • 英文 :


我试图用"%d.%m %y"解析字符串"01.09 2015",但它返回年份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)>

我不明白这里发生了什么。

您需要将%y(意思是year % 100 (00..99))替换为%Y4位数年份):

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

最新更新