RubyのDate.parseメソッドの仕様について調べています。
このメソッドは文字列を解析してDateオブジェクトを返してくれるのですが、どのようなフォーマットを許容するのかがドキュメントにありません。
フォーマットによっては意図しない値が返ってくるのではないか、ロケールなどの環境変数によってはフォーマットも異なるのではないかという不安があり、普段はDate.strptimeを使用しています。
ソースコードを呼んで実際に検証すればいいのでしょうが、Date.parseに関するドキュメント/仕様がどこかにあるのではないかと思いここに質問させていただきました。
追記
もっとも網羅性が高い資料にDate.parseのテストコードがあることに気づきました(そりゃそうですね)。
しかしDate.parseの挙動はfalse positiveな動作をするようで
bash
1[centos@centos7 ~]$ ruby -v 2ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux] 3[centos@centos7 ~]$ irb 4irb(main):001:0> require 'date' 5=> true 6irb(main):002:0> Date.parse('SHOW ME THE MONEY!!!') 7=> #<Date: 2017-12-04 ((2458092j,0s,0n),+0s,2299161j)>
なるべく日付として解釈できるよう頑張る仕組みになっているようです。
mon,sun,tue,wed,thu,fri,sat,sunなどの文字列が紛れ込むと思わぬ動作になりかねないので、やはりDate.parseは使用しないほうが良いのではないかと思っています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/12/05 16:13