0

以下を渡すと、2013 年 12 月 2 日ではなく 2013 年 2 月 12 日と解釈されます。これには理由がありますか? システムのデフォルトをどこかで変更する必要がありますか? これは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 に答える