通过以下内容将被解释为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
答案 0 :(得分:3)
strptime怎么样?
DateTime.strptime("12/2/2013 1:00:00 PM", "%m/%d/%Y %H:%M:%S %p")
我不知道这种行为是否依赖于系统设置,或者Ruby是否总是如此。无论如何,我宁愿在代码中明白这个要求(日期应该以这种方式解析)。
另请参阅:http://foragoodstrftime.com(我从中获取格式字符串)