Dates, Times, and Formatting
Format Patterns
Format a fixed date with a numeric month and a short month label.
format-patterns
Formatting chooses which date parts appear and how they are padded or labeled.
Format Patterns
FormatPatterns.kt
Replay: real traced execution (multi-file project)
fun twoDigits(value: Int): String {
return value.toString().padStart(2, '0')
}
fun monthLabel(month: Int): String {
if (month == 1) {
return "Jan"
}
if (month == 12) {
return "Dec"
}
return "Apr"
}
fun main() {
val month = 4
val day = 9
val numeric = "2026-${twoDigits(month)}-${twoDigits(day)}"
val label = "${monthLabel(month)} ${twoDigits(day)}, 2026"
println("numeric=$numeric")
println("label=$label")
}
fun twoDigits(value: Int): String {
return value.toString().padStart(2, '0')
}
fun monthLabel(month: Int): String {
if (month == 1) {
return "Jan"
}
if (month == 12) {
return "Dec"
}
return "Apr"
}
fun main() {
val month = 1
val day = 9
val numeric = "2026-${twoDigits(month)}-${twoDigits(day)}"
val label = "${monthLabel(month)} ${twoDigits(day)}, 2026"
println("numeric=$numeric")
println("label=$label")
}
fun twoDigits(value: Int): String {
return value.toString().padStart(2, '0')
}
fun monthLabel(month: Int): String {
if (month == 1) {
return "Jan"
}
if (month == 12) {
return "Dec"
}
return "Apr"
}
fun main() {
val month = 12
val day = 9
val numeric = "2026-${twoDigits(month)}-${twoDigits(day)}"
val label = "${monthLabel(month)} ${twoDigits(day)}, 2026"
println("numeric=$numeric")
println("label=$label")
}
month ← 4, day ← 9
15fun main() {16 val month→ 4 = 4 //@month=1, 1217 val day→ 9 = 918 val numeric = "2026-${twoDigits(month4)}-${twoDigits(day9)}"19 val label = "${monthLabel(month)} ${twoDigits(day)}, 2026"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 9 3 9 numeric ← 2026-04-09
17val day = 918val numeric→ 2026-04-09 = "2026-${twoDigits(month4)}-${twoDigits(day9)}"19val label = "${monthLabel(month4)} ${twoDigits(day9)}, 2026"fun monthLabel(month: Int): String
5fun monthLabel(month4: Int): String {6 if (month == 1) {7 return "Jan"8 }9 if (month == 12) {10 return "Dec"11 }12 return "Apr"13}label ← Apr 09, 2026
18 val numeric = "2026-${twoDigits(month)}-${twoDigits(day)}"19 val label→ Apr 09, 2026 = "${monthLabel(month4)} ${twoDigits(day9)}, 2026"2021 println("numeric=$numeric2026-04-09")22 println("label=$labelApr 09, 2026")23}outputnumeric=2026-04-09 label=Apr 09, 2026
month ← 1, day ← 9
15fun main() {16 val month→ 1 = 117 val day→ 9 = 918 val numeric = "2026-${twoDigits(month1)}-${twoDigits(day9)}"19 val label = "${monthLabel(month)} ${twoDigits(day)}, 2026"fun twoDigits(value: Int): String
pass 1 of 31fun twoDigits(value1: Int): String {2 return value1.toString().padStart(2, '0')3}All 3 passes — pass 1 is the card above pass value1 1 2 9 3 9 numeric ← 2026-01-09
17val day = 918val numeric→ 2026-01-09 = "2026-${twoDigits(month1)}-${twoDigits(day9)}"19val label = "${monthLabel(month1)} ${twoDigits(day9)}, 2026"fun monthLabel(month: Int): String
5fun monthLabel(month1: Int): String {6 if (month == 1) {if (month == 1)
5fun monthLabel(month: Int): String {6 if (month1 == 1) {7 return "Jan"8 }label ← Jan 09, 2026
18 val numeric = "2026-${twoDigits(month)}-${twoDigits(day)}"19 val label→ Jan 09, 2026 = "${monthLabel(month1)} ${twoDigits(day9)}, 2026"2021 println("numeric=$numeric2026-01-09")22 println("label=$labelJan 09, 2026")23}outputnumeric=2026-01-09 label=Jan 09, 2026
month ← 12, day ← 9
15fun main() {16 val month→ 12 = 1217 val day→ 9 = 918 val numeric = "2026-${twoDigits(month12)}-${twoDigits(day9)}"19 val label = "${monthLabel(month)} ${twoDigits(day)}, 2026"fun twoDigits(value: Int): String
pass 1 of 31fun twoDigits(value12: Int): String {2 return value12.toString().padStart(2, '0')3}All 3 passes — pass 1 is the card above pass value1 12 2 9 3 9 numeric ← 2026-12-09
17val day = 918val numeric→ 2026-12-09 = "2026-${twoDigits(month12)}-${twoDigits(day9)}"19val label = "${monthLabel(month12)} ${twoDigits(day9)}, 2026"fun monthLabel(month: Int): String
5fun monthLabel(month12: Int): String {6 if (month == 1) {if (month == 12)
8}9if (month12 == 12) {10 return "Dec"11}label ← Dec 09, 2026
18 val numeric = "2026-${twoDigits(month)}-${twoDigits(day)}"19 val label→ Dec 09, 2026 = "${monthLabel(month12)} ${twoDigits(day9)}, 2026"2021 println("numeric=$numeric2026-12-09")22 println("label=$labelDec 09, 2026")23}outputnumeric=2026-12-09 label=Dec 09, 2026