Published on

rubyで日付を任意のフォーマットに変換するやり方

Authors
  • avatar
    Name
    ssu
    Twitter

rubyでの日付の取得はDate型とDateTime型を使ってできます。 それぞれで取得した日付を任意のフォーマットに変換する方法を紹介します。

とても簡単で両方ともstrftimeを使えば実現できます。 今日の日付を〇〇年〇月〇日とする方法は下記のようになります。

# dateを使う場合 require 'date' today = Date.today today.strftime("%Y年%m月%d日") #=> "2021年12月23日"
# datetimeを使う場合 require 'date' today_with_time = DateTime.now today_with_time.strftime("%Y年%m月%d日") #=> "2021年12月23日"

また、%のフォーマットでよく使う記法は下記のようなものになります。参考にしてみてください。

| %フォーマット| 意味 |
| %Y | 西暦表記の年(e.g 2021, 1990年と表記されます) |
| %y | 0~99の間で西暦を表します。2021年の場合だと21年 |
|  %m | 月を表します。一桁の場合に0がつきます(例 01月、12月) |
| %-m | 月を表します。一桁の月の場合でも0がつきません。(例 1月 12月) |
| %d  | 日を表します。一桁の場合に0がつきます(例 01月、12月) |
| %-d | 日を表します。一桁の場合にも0つきません。(例 01日、31日) |

参考: stftime

参考: ruby-date-format-strftime/cheatsheet