0

传入以下内容被解释为 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 
4

1 回答 1

3

strptime怎么样?

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

我不知道这种行为是否取决于系统设置,或者它是否是 Ruby 一直在做的事情。无论如何,我宁愿在代码中明确提出这个要求(应该以这种方式解析日期)。

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

于 2013-08-29T22:40:28.573 回答