質問: ダメ元で元号を`Date.parse`で変換できるかと思い試してみたところ ``` Date.parse("平成26年10月27日") # => Sat, 26 Sep 2015 ``` になりました。”平成”を抜いても結果は同じなのは確認したのと`26`が使われているのはわかるのですが年と月に関してはどうしてこのような結果になるのでしょうか?
回答: ruby の Date.parse は iso8601 と jisx0301 をサポートしています。 詳しくは jisx0301 の規格書を参照下さい。以下でも参考になります。 iso8601 形式であれば YY-MM-DD が扱えるフォーマットの一つなので ``` p Date.parse("15-10-27") ``` は ``` 2015-10-27 ``` として扱われます。また JISX0301 では S や H 等の年号記号が接頭で付き SYY.MM.DD が扱えるフォーマットの一つなので ``` p Date.parse("H26.10.27") ``` は ``` 2014-10-27 ``` として扱われます。和暦の和名を扱いたいならば予め `平成` を `H` に置換するなどが必要かと思います。