Rubyでstrftimeを使いdateを指定する方法を現役エンジニアが解説【初心者向け】

初心者向けにRubyでstrftimeを使いdateを指定する方法について現役エンジニアが解説しています。strftimeとは日付オブジェクトの値を文字列に変換するメソッドです。DateクラスのメソッドでサブクラスにDateTimeクラスがあります。strftimeで指定できる日付フォーマット表一覧も確認しましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事が4,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 と同等

 

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

# 拡張ライブラリー "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では、初心者でも最短4週間で、Ruby on Railsを使ったプログラミングを習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。