👌
ActiveSupport の Time#to_fs, to_formatted_s で指定できるフォーマットを拡張する
ActiveSupport で定義されている Time#to_fs に渡せる値は Time::DATE_FORMATS で定義されています。
なので Time::DATE_FORMATS に定義を追加することで Time#to_fs に渡せる値を拡張することができます。
例えば日本語で 年月日時分秒 に変換するようなフォーマットを定義したい場合は以下のように利用できます。
# 必要に応じて DATE_FORMATS に定義を追加する
Time::DATE_FORMATS[:ja] = "%Y年%m月%d日 %H時%M分%S秒"
time = Time.parse("2024-10-06 17:59:12.136189821 +0900")
# 追加した DATE_FORMATS のキーを指定する
pp time.to_fs(:ja)
# => "2024年10月06日 17時59分12秒"
Discussion