Rubyでstrftimeを使いdateを指定する方法を現役エンジニアが解説【初心者向け】
初心者向けにRubyでstrftimeを使いdateを指定する方法について現役エンジニアが解説しています。strftimeとは日付オブジェクトの値を文字列に変換するメソッドです。DateクラスのメソッドでサブクラスにDateTimeクラスがあります。strftimeで指定できる日付フォーマット表一覧も確認しましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Rubyでstrftimeを使いdateを指定する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプ、Ruby講座の内容をもとに紹介しています。
今回は、Rubyに関する内容だね!
どういう内容でしょうか?
Rubyでstrftimeを使いdateを指定する方法について詳しく説明していくね!
お願いします!
dateとは
Date クラスは日付を扱う拡張クラスです。DateTimeクラスをサブクラスに持ちます。
strftimeは日付オブジェクトの値を文字列に変換するメソッドです。
日付(Date)オブジェクトをstrftimeを使って文字列に変換する方法
拡張クラスなのでライブラリーを読み込む必要があります。Dateクラスを読み込むことで同時にDateTimeクラスも使えるようになります。
以下の形式で使用します。
require "date" 日付オブジェクト.strftime("フォーマット")
様々なフォーマットの指定方法がありますが、覚えておきたい形式は次のとおりです。
- %Y: 西暦を表す数
- %m: 月を表す数字(01-12)
- %d: 日(01-31)
- %F: %Y-%m-%d と同等 (ISO 8601の日付フォーマット)
- %H: 24時間制の時(00-23)
- %M: 分(00-59)
- %S: 秒(00-60) (60はうるう秒)
- %T: 24時間制の時刻。%H:%M:%S と同等
実際に書いてみよう
# 拡張ライブラリー "date" を読み込みます。 # 日付オブジェクトの変換フォーマットを指定します。 require "date" dt = Date.new(2012,3,4) puts dt.strftime("%Y/%m/%d") #=> 2012/03/04 # いい機会なので Date クラスの便利メソッドも見てみましょう。 # # それぞれ日付オブジェクトの年月日を示します。 puts dt.year #=> 2012 puts dt.month #=> 3 puts dt.day #=> 4 # 日数を足し引きすることができます。 puts dt - 3 #=> 2012-03-01 puts dt + 3 #=> 2012-03-07 # それぞれ翌年翌月翌日を示します。 puts dt.next_year #=> 2013-03-04 puts dt.next_month #=> 2012-04-04 puts dt.next_day #=> 2012-03-05 # それぞれ昨年昨月昨日を示します。 puts dt.prev_year #=> 2011-03-04 puts dt.prev_month #=> 2012-02-04 puts dt.prev_day #=> 2012-03-03 __END__
実行結果
#=> 2012/03/04 2012 3 4 2012-03-01 2012-03-07 2013-03-04 2012-04-04 2012-03-05 2011-03-04 2012-02-04 2012-03-03
まとめ
日付(Date)オブジェクトにstrftimeメソッドを使うことで 日付や時刻を意図した形の文字列に変換できましたね。
どんどん活用していきましょう。
筆者プロフィール
メンター古川さん
Rubyが得意で、Webエンジニアとして最上流から最下流までセルフスターターとして活躍してきました。 近年セミリタイアし、フリーランスとして適度に働きながら穏やかな生活を楽しでいます。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でも、Ruby on Railsを使ったプログラミングを習得できる、オンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。