Time.now # 現在の日時(ローカルタイムゾーン) Time.now.utc # 現在の日時(UTC) Date.today # 現在の日付 DateTime.now # 現在の日時(DateTimeオブジェクト) Time.zone.now # 設定されたタイムゾーンの現在時刻 Time.current # Railsに設定されたタイムゾーンの現在時刻(基本的にコレを使おう!!) Date.new(2024, 1, 20) # 2024年1月20日 Time.new(2024, 1, 20, 12, 0, 0) # 2024年1月20日12時0分0秒 DateTime.new(2024, 1, 20, 12, 0, 0) # 2024年1月20日12時0分0秒(DateTimeオブジェクト) Time.zone.local(2024, 1, 20) # 指定されたタイムゾーンでの特定の日時 Time.now.beginning_of_month # 今月の初めの日時 Time.now.end_of_day # 今日の終わり(23:59:59)の日時 Time.now.strftime("%Y-%m-%d %H:%M:%S") # "YYYY-MM-DD HH:MM:SS" フォーマット Date.today.strftime("%d/%m/%Y") # "DD/MM/YYYY" フォーマット time = Time.now time.strftime("%Y-%m-%d %H:%M:%S") # YYYY-MM-DD HH:MM:SS 形式 time.strftime("%d/%m/%Y") # DD/MM/YYYY 形式 time.strftime("%I:%M%p") # 時:分AM/PM 形式 # 例: "2024-01-20 12:30:45", "20/01/2024", "12:30PM" Time.current.to_s(:short) # "20 Jan 12:30" Time.current.to_s(:long) # "January 20, 2024 12:30" # カスタムフォーマット(例: :db, :number) Time.current.to_formatted_s(:db) # "2024-01-20 12:30:45" Time.current.to_formatted_s(:number) # "20240120123045" # ISO 8601 フォーマット Time.current.iso8601 # "2024-01-20T12:30:45+09:00" # Durationに生えてる 2.hours.from_now # 現在から2時間後 3.days.ago # 3日前 # Date / Timeに生えてる 5.weeks.since(Date.today) # 今日から5週間後の日付 1.year.until(Time.now) # 現在から1年前 1.second # 1秒 2.minutes # 2分 3.hours # 3時間 4.days # 4日 5.weeks # 5週間 6.months # 6ヶ月 7.years # 7年 1.year.ago + 1.day # 1年前の1日あと 1.week + 3.days + 2.hours # 1週間3日2時間の持続時間を表す 10.minutes.to_i # 分を秒に変換 10.minutes == 600.seconds # true 1.day > 1.hour # true 10.minutes.in_seconds # 秒数(600秒) 2.hours.in_minutes # 分数(120分) 1.day.in_hours # 時間数(24時間) (Date.today.beginning_of_week..Date.today.end_of_week).cover?(Date.yesterday) # 今週の範囲に昨日が含まれるかどうか where(created_at: Time.zone.today.all_month) # all_day , all_week , all_month , all_year # 2017年9月30日(土)の場合 Time.zone.today # => Sat, 30 Sep 2017 Time.zone.today.on_weekday? # => false Time.zone.today.on_weekend? # => true # 現在時刻を特定の日時に設定 travel_to Time.new(2024, 1, 20, 10, 0, 0) do # ここでは時刻が2024年1月20日10時0分0秒 end # 現在時刻を凍結 freeze_time do # ここでは時刻がブロックが開始した瞬間に凍結される end travel 2.hours do # 現在時刻から2時間進んだ時刻でコードを実行 end travel_back