Dates, Formatting, and Text
Date Components
DateComponents stores calendar fields without reading the current clock.
Build a fixed calendar value
date_components.swift
Replay: real traced execution (multi-file project)
import Foundation
let month = 6
let components = DateComponents(year: 2026, month: month, day: 1)
let message = "date=\(components.year!)-\(components.month!)-\(components.day!)"
print(message)
import Foundation
let month = 1
let components = DateComponents(year: 2026, month: month, day: 1)
let message = "date=\(components.year!)-\(components.month!)-\(components.day!)"
print(message)
import Foundation
let month = 12
let components = DateComponents(year: 2026, month: month, day: 1)
let message = "date=\(components.year!)-\(components.month!)-\(components.day!)"
print(message)
month ← 6, components ← <NSDateComponents: ⟨addr A⟩>, message ← date=2026-6-1
3let month→ 6 = 6 //@month=1, 124let components→ <NSDateComponents: ⟨addr A⟩> = DateComponents(year: 2026, month: month6, day: 1)5let message→ date=2026-6-1 = "date=\(components.yearOptional(2026)!)-\(components.monthOptional(6)!)-\(components.dayOptional(1)!)"67print(messagedate=2026-6-1)outputdate=2026-6-1
month ← 1, components ← <NSDateComponents: ⟨addr A⟩>, message ← date=2026-1-1
3let month→ 1 = 14let components→ <NSDateComponents: ⟨addr A⟩> = DateComponents(year: 2026, month: month1, day: 1)5let message→ date=2026-1-1 = "date=\(components.yearOptional(2026)!)-\(components.monthOptional(1)!)-\(components.dayOptional(1)!)"67print(messagedate=2026-1-1)outputdate=2026-1-1
month ← 12, components ← <NSDateComponents: ⟨addr A⟩>, message ← date=2026-12-1
3let month→ 12 = 124let components→ <NSDateComponents: ⟨addr A⟩> = DateComponents(year: 2026, month: month12, day: 1)5let message→ date=2026-12-1 = "date=\(components.yearOptional(2026)!)-\(components.monthOptional(12)!)-\(components.dayOptional(1)!)"67print(messagedate=2026-12-1)outputdate=2026-12-1
date components
Date components are useful when a program needs named calendar fields such as year, month, and day.