#18 Rubyで学ぶ日付と時刻の扱いの基本

Rubyの日付操作は、標準ライブラリの`Time`や`Date`を使い、直感的な書き方ができます。この記事では、Rubyにおける日付と時刻の基本的な扱い方と、`Time`・`Date`・`DateTime`の使い分けを解説します。

Timeを使う

now = Time.now puts now

`Time.now`は実行環境のローカル時刻を返します。UTC(協定世界時)で扱いたい場合は`Time.now.utc`を使います。

日付を文字列にする

puts now.strftime("%Y年%m月%d日") puts now.strftime("%H時%M分%S秒")

この`strftime`という名前と書式は、Pythonの`datetime`とよく似ています。`%Y`は西暦4桁、`%m`は月、`%d`は日を表す書式指定子で、組み合わせて自由な形式の文字列を作れます。

文字列から日付に変換する

逆に文字列を日付として扱いたい場合は、`Date.parse`や`Time.parse`(要`require "time"`)が便利です。

require "date" d = Date.parse("2026-08-18") puts d.year

ユーザー入力など形式が保証されていない文字列を扱う場合は、`strptime`で明示的にフォーマットを指定して変換すると、意図しない形式の文字列を誤って解釈してしまう事故を防げます。

日付を計算する

Rubyでは、秒数を表す数値をそのまま足すことで、簡単に日付を計算できます。

three_days_later = now + 3 * 24 * 60 * 60

ただし`Date`型に対しては、加算する数値の単位が「日数」になる点に注意が必要です。

require "date" today = Date.today next_week = today + 7

Rubyならではの注意点

Rubyには`Time`のほかに`Date`・`DateTime`というクラスもあり、それぞれ得意な用途が少し異なります。時刻まで必要なら`Time`、日付だけを扱いたいなら`Date`、タイムゾーンを厳密に扱いたい古いコードなら`DateTime`、というように使い分けるとよいでしょう。近年は`Time`と`ActiveSupport`(Ruby on Railsが提供する拡張)の組み合わせで日付操作をすることも多く、Railsプロジェクトではさらに便利なメソッド(`3.days.ago`など)が使えることも覚えておくと役立ちます。

まとめ

Rubyの日付操作は`Time`が基本で、`strftime`での文字列変換、`Date.parse`での文字列からの変換が便利です。用途に応じて`Date`・`DateTime`との使い分けも意識しましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

Rubyをもっと学びたい方には「プロを目指す人のためのRuby入門[改訂2版]」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本