为什么DateParse在这里使用欧洲标准日期格式

时间:2013-08-29 22:26:22

标签: ruby

通过以下内容将被解释为2013年2月12日而不是2013年12月2日..是否有理由这样做?我是否必须在某处更改某些系统默认值?这是使用Ruby 2.0.0

2.0.0-p247-turbo :003 > dt=DateTime.parse("12/2/2013 1:00:00 PM")
 => #<DateTime: 2013-02-12T13:00:00+00:00 ((2456336j,46800s,0n),+0s,2299161j)> 
2.0.0-p247-turbo :004 > dt.day
 => 12 
2.0.0-p247-turbo :005 > dt.month
 => 2 
2.0.0-p247-turbo :006 > dt.year
 => 2013 

1 个答案:

答案 0 :(得分:3)

strptime怎么样?

DateTime.strptime("12/2/2013 1:00:00 PM", "%m/%d/%Y %H:%M:%S %p")

我不知道这种行为是否依赖于系统设置,或者Ruby是否总是如此。无论如何,我宁愿在代码中明白这个要求(日期应该以这种方式解析)。

另请参阅:http://foragoodstrftime.com(我从中获取格式字符串)