Dates, Times, and Formatting
Local Date Basics
Build a fixed date label from year, month, and day parts.
local-date-basics
A date can be represented as separate year, month, and day fields before it is formatted.
Local Date Basics
LocalDateBasics.kt
Replay: real traced execution (multi-file project)
fun twoDigits(value: Int): String {
return value.toString().padStart(2, '0')
}
fun main() {
val year = 2026
val month = 4
val day = 15
val iso = "$year-${twoDigits(month)}-${twoDigits(day)}"
println("year=$year")
println("month=${twoDigits(month)}")
println("date=$iso")
}
fun twoDigits(value: Int): String {
return value.toString().padStart(2, '0')
}
fun main() {
val year = 2025
val month = 4
val day = 15
val iso = "$year-${twoDigits(month)}-${twoDigits(day)}"
println("year=$year")
println("month=${twoDigits(month)}")
println("date=$iso")
}
fun twoDigits(value: Int): String {
return value.toString().padStart(2, '0')
}
fun main() {
val year = 2027
val month = 4
val day = 15
val iso = "$year-${twoDigits(month)}-${twoDigits(day)}"
println("year=$year")
println("month=${twoDigits(month)}")
println("date=$iso")
}
year ← 2026, month ← 4, day ← 15
5fun main() {6 val year→ 2026 = 2026 //@year=2025, 20277 val month→ 4 = 48 val day→ 15 = 159 val iso = "$year2026-${twoDigits(month4)}-${twoDigits(day15)}"fun twoDigits(value: Int): String
pass 1 of 31fun twoDigits(value4: Int): String {2 return value4.toString().padStart(2, '0')3}All 3 passes — pass 1 is the card above pass value1 4 2 15 3 4 iso ← 2026-04-15
8val day = 159val iso→ 2026-04-15 = "$year2026-${twoDigits(month4)}-${twoDigits(day15)}"1011println("year=$year2026")12println("month=${twoDigits(month4)}")13println("date=$iso")outputyear=2026println("month=${twoDigits(month)}")
11 println("year=$year")12 println("month=${twoDigits(month4)}")13 println("date=$iso2026-04-15")14}outputmonth=04 date=2026-04-15
year ← 2025, month ← 4, day ← 15
5fun main() {6 val year→ 2025 = 20257 val month→ 4 = 48 val day→ 15 = 159 val iso = "$year2025-${twoDigits(month4)}-${twoDigits(day15)}"fun twoDigits(value: Int): String
pass 1 of 31fun twoDigits(value4: Int): String {2 return value4.toString().padStart(2, '0')3}All 3 passes — pass 1 is the card above pass value1 4 2 15 3 4 iso ← 2025-04-15
8val day = 159val iso→ 2025-04-15 = "$year2025-${twoDigits(month4)}-${twoDigits(day15)}"1011println("year=$year2025")12println("month=${twoDigits(month4)}")13println("date=$iso")outputyear=2025println("month=${twoDigits(month)}")
11 println("year=$year")12 println("month=${twoDigits(month4)}")13 println("date=$iso2025-04-15")14}outputmonth=04 date=2025-04-15
year ← 2027, month ← 4, day ← 15
5fun main() {6 val year→ 2027 = 20277 val month→ 4 = 48 val day→ 15 = 159 val iso = "$year2027-${twoDigits(month4)}-${twoDigits(day15)}"fun twoDigits(value: Int): String
pass 1 of 31fun twoDigits(value4: Int): String {2 return value4.toString().padStart(2, '0')3}All 3 passes — pass 1 is the card above pass value1 4 2 15 3 4 iso ← 2027-04-15
8val day = 159val iso→ 2027-04-15 = "$year2027-${twoDigits(month4)}-${twoDigits(day15)}"1011println("year=$year2027")12println("month=${twoDigits(month4)}")13println("date=$iso")outputyear=2027println("month=${twoDigits(month)}")
11 println("year=$year")12 println("month=${twoDigits(month4)}")13 println("date=$iso2027-04-15")14}outputmonth=04 date=2027-04-15