🚀

Rails の main ブランチに TimeWithZone#inspect が ISO 8601 に準じる対応が入った

2024/09/07に公開

以下の PR が main ブランチにマージされました。

TimeWithZone#inspect は今まで RFC 822 に準ずる形で返していたんですが Rails 8.0 以降では ISO 8601 準じたフォーマットで値を返すようになりました、やったね!

何が変わったのか

今までは TimeWithZone#inspect は RFC 822 と呼ばれるフォーマットに準じていました。
RFC 822 とは以下のような曜日などが含まれたフォーマットです。

Time.zone = "Hawaii"

pp "2000/01/01".in_time_zone
# Rails 7.2 => Sat, 01 Jan 2000 00:00:00.000000000 HST -10:00

Rails を使っているとよく見る形だと思います。
これが今回対応された後だと以下のように ISO 8601 に準じる形で出力されるようになります。

Time.zone = "Hawaii"

pp "2000/01/01".in_time_zone
# Rails 7.2 => Sat, 01 Jan 2000 00:00:00.000000000 HST -10:00
# main      => 2000-01-01 00:00:00.000000000 HST -10:00

これが反映されるのは次の Rails のバージョンである 9.0 からになります。
RFC 822 がめちゃくちゃ見づらかったのでこれはありがたい…。

GitHubで編集を提案

Discussion