スキップしてメイン コンテンツに移動

Rubyで日付・時間を自在に

Rubyで日付・時間を自在に

Ruby実践での日付時間操作

Rubyで日付や時間を扱う際は、標準ライブラリの daterequire 'date' で読み込むことから始めます。これにより DateDateTime のクラスが利用可能になります。

require 'date'

today = Date.today
puts "今日の日付: #{today}"

now = DateTime.now
puts "現在の日時: #{now}"

また、 Time クラスを使ってより細かい時間情報を取得することもできます。 Time.new で現在時刻を取得し、タイムゾーンを指定することも可能です。

current_time = Time.new
puts "現在時刻: #{current_time}"

フォーマットとstrftimeの使い方

日付や時間を文字列に変換する際は strftime メソッドが便利です。フォーマット文字列を指定して、任意の形式で出力できます。

formatted = today.strftime("%Y-%m-%d")
puts "フォーマット例: #{formatted}"

formatted_time = current_time.strftime("%H:%M:%S")
puts "時間フォーマット: #{formatted_time}"

フォーマットコードの一覧は Ruby の公式ドキュメントに記載されています。例えば %Y は西暦年、%m は月、%d は日、%H は24時間表記の時、%M は分、%S は秒を表します。

期間計算の実践例

日付間の差分を計算するには Date オブジェクト同士を減算します。結果は Rational で返されるため、整数に変換する場合は .to_i を使います。

start_date = Date.new(2026, 1, 1)
end_date   = Date.today
days_diff  = (end_date - start_date).to_i
puts "2026年1月1日から今日までの経過日数: #{days_diff}"

さらに、 DateTime を使えば時間単位での差分も取得できます。 to_time メソッドで Time オブジェクトに変換し、秒単位で差分を計算します。

start_dt = DateTime.new(2026, 1, 1, 0, 0, 0)
end_dt   = DateTime.now
seconds_diff = (end_dt - start_dt).to_f * 86400
puts "経過秒数: #{seconds_diff.round}"

このように Ruby の標準ライブラリだけで、日付時間の取得・フォーマット・期間計算を簡潔に実装できます。

この記事はAIによって作成されました。

コメント