繁体   English   中英

rails i18n日期问题

[英]rails i18n date problem

我们目前正在开发一个使用i18n的rails项目,我们的日期问题很小:

# on my mac
"10.06.2008".to_date 
# produces => Tue, 10 Jun 2008

# on a friends mac and on the production server
"10.06.2008".to_date
# produces => ..., 06 Oct 2008

如您所见,日期不对。 我们检查了一切。 locale.yml(de.yml)在两个系统上都很好,并且也设置了default_locale。 我们系统之间的唯一区别是ruby版本。 我正在运行ruby 1.8.7并且他运行1.8.6。 这可能是这种行为的原因吗?

任何帮助,将不胜感激。

是的,Ruby版本是不同的。 String#to_date Date._parse内部调用Date._parse ,并返回Ruby 1.8.6和1.8.7的不同结果。

1.8.7:

require "date"
Date._parse("10.06.2008")
#=> {:year=>2008, :mday=>10, :mon=>6}

1.8.6:

Date._parse("10.06.2008")
#=> {:mday=>6, :mon=>10, :year=>2008}

1.8.7更改日志提到了对日期解析方式的更改:

Date.parse: '##。##。##'(其中每个'#'是一个数字)现在被视为'YY.MM.DD'而不是'MM.DD.YY'。 虽然更改可能会让您感到困惑,但是当您知道要处理的内容时,可以始终使用Date.strptime()。

尽管未明确提及您示例中的四位数版本,但相同的更改可能会导致差异。 解决方法是使用Date.strptime

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM