RubyのDateTimeクラスで日付を取得する方法【初心者向け】
初心者向けにRubyでDateTimeクラスを使う方法について解説しています。日付を扱う場面は多いので、データ取得のやり方を実際に取得・出力を行うコードを書きながら覚えていきましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
RubyでDateTimeクラスを使う方法について解説します。
そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。

今回は、Rubyに関する内容だね!

どういう内容でしょうか?

DateTimeクラスの使い方について詳しく説明していくね!

お願いします!
DateTimeクラスとは
Rubyの標準ライブラリには、日付、日時を扱うクラスが存在します。
DateTimeクラスは、Dateクラスのサブクラスで、日時を扱う為のクラスです。
例えば、投稿された記事の日付のフォーマットを変更したい場合や、現在時刻の表示を行いたい場合などに利用します。
DateTimeクラスで日付を取得する
DateTimeクラスのオブジェクトを生成する場合は、newメソッドを使用して生成する、parseメソッドなどを使い、別のフォーマットの日付を与えて生成する、現在日時から生成するなどの方法があります。
require "date"
# newメソッドでDateTimeオブジェクトを生成
# DateTime.new([year[, month[, mday[, hour[, minute[, second[, offset[, start=Date::ITALY]]]]]]]])
date = DateTime.new(2018, 7, 16, 10, 11, 12, '+09:00')
# parseメソッドでDateTimeオブジェクトを生成
# DateTime.parse(str, [complete, [start]])
date = DateTime.parse('2018-07-16 00:00:00')
# 現在日時からDateTimeオブジェクトを生成
# DateTime.now([start])
date = DateTime.now
実際に書いてみよう
DateTimeオブジェクトは、日時に関する様々な操作が行えます。
サンプルと実行結果を確認してみましょう。
ソースコード
require "date"
d = "2018/07/16 12:00:00 +09:00"
date = DateTime.parse(d) # 指定した日付でDateTimeオブジェクトを生成
# DateTimeオブジェクをを文字列として出力
p date.to_s
# 結果: 2018-07-16T12:00:00+09:00
# フォーマットを変更して出力
p date.strftime("%Y年%m月%d日 %H:%M:%S").to_s
# 結果:2018年07月16日 12:00:00
# 時間だけ出力
p date.hour.to_s
# 結果:12
# 分を出力
p date.min.to_s
# 結果:0
# 秒を出力
p date.sec.to_s
# 結果:0
# タイムゾーンを出力
p date.zone
# 結果:+09:00
# 昨日の日付を出力
p (date - 1).to_s
# 結果:2018-07-15T12:00:00+09:00
# 先月の日付を出力
p (date << 1).to_s
# 結果:2018-06-16T12:00:00+09:00
# 1時間前を出力
p (date - Rational(1, 24)).to_s
# 結果:2018-07-16T11:00:00+09:00
回答してくれたメンター
| 中廣 誠
職種: WEBエンジニア 過去の開発実績・業務内容: 趣味など |

内容分かりやすくて良かったです!

ゆかりちゃんも分からないことがあったら質問してね!

分かりました。ありがとうございます!
TechAcademyでは、初心者でもRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。