どうものりにぃです!
今回の記事では、strftimeを使って日付を「2022/01/01」や「2022-01-01」などフォーマットに変換する方法を紹介します。
Data型について知りたい方は、こちらの記事を参照してください!
【ジャンルが豊富で学びたい講座がきっとみつかる】
習得したいスキルが明確で年収アップのために学習している方!
- ジャンルが豊富で学びたい講座がきっとみつかる
- お手頃な価格帯
- 学びやすい多彩な機能
オンライン完結で手軽に学べるプラットフォームです!
strftimeメソッドとは
Rubyのstrftimeメソッドは日付をフォーマット化して文字列形式で返してくれるメソッドです。
例えば”2022-01-01 01:01:01”といった日時データを”2022年1月1日 1時1分1秒”のように文字列に変換したいときもあると思います。
出力形式を指定されているときなどに便利なメソッドです。
フォーマット文字列の意味
strftimeの引数で使用するフォーマット文字列には、いろいろな書き方があります。記述例とともに一覧表で確認してみましょう。
フォーマット文字列 | 意味 |
---|---|
%F | 日付(%Y-%m-%d ) |
%Y | 西暦4桁 |
%y | 西暦の下2桁(00-99) |
%m | 月を表す数字(01-12) |
%M | 分(00-59) |
%d | 日(01-31) |
%D | 日付(%m/%d/%y) |
%x | 日付(%m/%d/%y) |
Date#strftimeの使い方
例えば2022/06/20現在で、フォーマット文字列%Fを使用すると”2022-06-20″と表示されます。
Date.today.strftime("%F") => "2022-06-20"
上記の結果である”2022-06-20″と同じ形式で出力するには、どのフォーマット文字列を利用すればよいでしょうか?
正解は以下のコードで実現できます。
Date.today.strftime("%Y-%m-%d") => "2022-06-20"
同じ結果が返ってきますね。
その他にもto_sを利用して同じ結果を出力することができます。こちらもぜひ覚えておいてください。
Date.today.to_s => "2022-06-20"
strftimeの注意点
strftimeメソッドは、あくまで1つの引数しかとることができません。
よって以下のように複数の引数を持たせようとするとエラーが起きることに注意しておきましょう。
Date.today.strftime("%Y", "%m", "%d") ArgumentError: wrong number of arguments (given 3, expected 0..1)
もしコロンで区切りをする場合は引数を1つ取るようにしましょう。
Date.today.strftime("%Y,%m,%d") => "2022,06,20"
まとめ
この記事では、Dateクラスのメソッドを使って、年月日を意図した形式で出力する方法を紹介しました。
ぜひ、利用してみてくださいね!