Dates, Time, and Formatting
Formatting Dates
strftime formats a date with a pattern made from percent codes.
date formatting
Numeric date formats are deterministic across locales and environments.
Formatting Dates
formatting_dates.rb
Replay: real traced execution (multi-file project)
require "date"
format = "%Y-%m-%d"
date = Date.new(2025, 7, 4)
formatted = date.strftime(format)
weekday_number = date.wday
puts "format=#{format}"
puts "formatted=#{formatted}"
puts "weekday=#{weekday_number}"
require "date"
format = "%d/%m/%Y"
date = Date.new(2025, 7, 4)
formatted = date.strftime(format)
weekday_number = date.wday
puts "format=#{format}"
puts "formatted=#{formatted}"
puts "weekday=#{weekday_number}"
require "date"
format = "%m-%d-%Y"
date = Date.new(2025, 7, 4)
formatted = date.strftime(format)
weekday_number = date.wday
puts "format=#{format}"
puts "formatted=#{formatted}"
puts "weekday=#{weekday_number}"
format ← %Y-%m-%d, date ← 2025-07-04, formatted ← 2025-07-04, weekday_number ← 5
1require "date"23format→ %Y-%m-%d = "%Y-%m-%d" #@format="%d/%m/%Y", "%m-%d-%Y"4date→ 2025-07-04 = Date.new(2025, 7, 4)56formatted→ 2025-07-04 = date.strftime(format)2025-07-047weekday_number→ 5 = date.wday589puts "format=#{format%Y-%m-%d}"10puts "formatted=#{formatted2025-07-04}"11puts "weekday=#{weekday_number5}"outputformat=%Y-%m-%d formatted=2025-07-04 weekday=5
format ← %d/%m/%Y, date ← 2025-07-04, formatted ← 04/07/2025, weekday_number ← 5
1require "date"23format→ %d/%m/%Y = "%d/%m/%Y"4date→ 2025-07-04 = Date.new(2025, 7, 4)56formatted→ 04/07/2025 = date.strftime(format)04/07/20257weekday_number→ 5 = date.wday589puts "format=#{format%d/%m/%Y}"10puts "formatted=#{formatted04/07/2025}"11puts "weekday=#{weekday_number5}"outputformat=%d/%m/%Y formatted=04/07/2025 weekday=5
format ← %m-%d-%Y, date ← 2025-07-04, formatted ← 07-04-2025, weekday_number ← 5
1require "date"23format→ %m-%d-%Y = "%m-%d-%Y"4date→ 2025-07-04 = Date.new(2025, 7, 4)56formatted→ 07-04-2025 = date.strftime(format)07-04-20257weekday_number→ 5 = date.wday589puts "format=#{format%m-%d-%Y}"10puts "formatted=#{formatted07-04-2025}"11puts "weekday=#{weekday_number5}"outputformat=%m-%d-%Y formatted=07-04-2025 weekday=5