Dates, Time, and Formatting
Time Objects
Ruby's Time class represents a specific clock time with an explicit offset.
time object
A `Time` can include date, hour, minute, second, and offset information.
Time Objects
time_objects.rb
Replay: real traced execution (multi-file project)
require "time"
hour = 14
time = Time.new(2025, 1, 15, hour, 30, 0, "+00:00")
iso = time.iso8601
clock = time.strftime("%H:%M")
offset = time.utc_offset
puts "time=#{iso}"
puts "clock=#{clock}"
puts "offset=#{offset}"
require "time"
hour = 9
time = Time.new(2025, 1, 15, hour, 30, 0, "+00:00")
iso = time.iso8601
clock = time.strftime("%H:%M")
offset = time.utc_offset
puts "time=#{iso}"
puts "clock=#{clock}"
puts "offset=#{offset}"
require "time"
hour = 20
time = Time.new(2025, 1, 15, hour, 30, 0, "+00:00")
iso = time.iso8601
clock = time.strftime("%H:%M")
offset = time.utc_offset
puts "time=#{iso}"
puts "clock=#{clock}"
puts "offset=#{offset}"
hour ← 14, time ← 2025-01-15 14:30:00 +0000, iso ← 2025-01-15T14:30:00+00:00
1require "time"23hour→ 14 = 14 #@hour=9, 204time→ 2025-01-15 14:30:00 +0000 = Time.new(2025, 1, 15, hour14, 30, 0, "+00:00")56iso→ 2025-01-15T14:30:00+00:00 = time.iso86012025-01-15T14:30:00+00:007clock→ 14:30 = time.strftime("%H:%M")14:308offset→ 0 = time.utc_offset0910puts "time=#{iso2025-01-15T14:30:00+00:00}"11puts "clock=#{clock14:30}"12puts "offset=#{offset0}"outputtime=2025-01-15T14:30:00+00:00 clock=14:30 offset=0
hour ← 9, time ← 2025-01-15 09:30:00 +0000, iso ← 2025-01-15T09:30:00+00:00
1require "time"23hour→ 9 = 94time→ 2025-01-15 09:30:00 +0000 = Time.new(2025, 1, 15, hour9, 30, 0, "+00:00")56iso→ 2025-01-15T09:30:00+00:00 = time.iso86012025-01-15T09:30:00+00:007clock→ 09:30 = time.strftime("%H:%M")09:308offset→ 0 = time.utc_offset0910puts "time=#{iso2025-01-15T09:30:00+00:00}"11puts "clock=#{clock09:30}"12puts "offset=#{offset0}"outputtime=2025-01-15T09:30:00+00:00 clock=09:30 offset=0
hour ← 20, time ← 2025-01-15 20:30:00 +0000, iso ← 2025-01-15T20:30:00+00:00
1require "time"23hour→ 20 = 204time→ 2025-01-15 20:30:00 +0000 = Time.new(2025, 1, 15, hour20, 30, 0, "+00:00")56iso→ 2025-01-15T20:30:00+00:00 = time.iso86012025-01-15T20:30:00+00:007clock→ 20:30 = time.strftime("%H:%M")20:308offset→ 0 = time.utc_offset0910puts "time=#{iso2025-01-15T20:30:00+00:00}"11puts "clock=#{clock20:30}"12puts "offset=#{offset0}"outputtime=2025-01-15T20:30:00+00:00 clock=20:30 offset=0