Rubyで日付・時間を自在に
Ruby実践での日付時間操作
Rubyで日付や時間を扱う際は、標準ライブラリの date を require 'date' で読み込むことから始めます。これにより Date と DateTime のクラスが利用可能になります。
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 の標準ライブラリだけで、日付時間の取得・フォーマット・期間計算を簡潔に実装できます。
コメント
コメントを投稿