DateTime.parse与变音符号的德语日期

时间:2015-03-03 15:44:21

标签: ruby parsing datetime

DateTime.parse是否已损坏?我尝试解析日期字符串2. März 2015,它应返回2015年3月2日的对象。

但是,由于ä - 字符,它会引发异常。在我的剧本中,变音处理是正常的。可能是什么问题?

1 个答案:

答案 0 :(得分:4)

  

可能是什么问题?

Ruby只解析英文月份名称。

  

它接受其他没有变音符号的德语字符串......

不是真的。 Ruby通过前3个字母检测月份名称,并丢弃其余的字母:

Date.parse('February')  #=> #<Date: 2015-02-01 ...>
Date.parse('Februar')   #=> #<Date: 2015-02-01 ...>
Date.parse('Feb')       #=> #<Date: 2015-02-01 ...>
Date.parse('Febfoobar') #=> #<Date: 2015-02-01 ...>

如果前三个字母不匹配,它就不起作用:

Date.parse('Mai')      #=> ArgumentError: invalid date
Date.parse('Dezember') #=> ArgumentError: invalid date