Read individual date parts from the table returned by os.date.

part lookup Immediate field reads keep the visible trace scalar while still showing the date-parts table API.

Date Parts

timestamp
date_parts.lua
Replay: real traced execution (multi-file project)
local timestamp = 1704067200
local year = os.date("!*t", timestamp).year
local month = os.date("!*t", timestamp).month
local day = os.date("!*t", timestamp).day
print("year=" .. year)
print("month=" .. month)
print("day=" .. day)
local timestamp = 1717200000
local year = os.date("!*t", timestamp).year
local month = os.date("!*t", timestamp).month
local day = os.date("!*t", timestamp).day
print("year=" .. year)
print("month=" .. month)
print("day=" .. day)
local timestamp = 1735689600
local year = os.date("!*t", timestamp).year
local month = os.date("!*t", timestamp).month
local day = os.date("!*t", timestamp).day
print("year=" .. year)
print("month=" .. month)
print("day=" .. day)
  1. timestamp ← 1704067200, year ← 2024, month ← 1, day ← 1

    1local timestamp→ 1704067200 = 1704067200 --@timestamp=1717200000, 17356896002local year→ 2024 = os.date("!*t", timestamp1704067200).year3local month→ 1 = os.date("!*t", timestamp1704067200).month4local day→ 1 = os.date("!*t", timestamp1704067200).day5print("year=" .. year2024)6print("month=" .. month1)7print("day=" .. day1)
    outputyear=2024
    month=1
    day=1
  1. timestamp ← 1717200000, year ← 2024, month ← 6, day ← 1

    1local timestamp→ 1717200000 = 17172000002local year→ 2024 = os.date("!*t", timestamp1717200000).year3local month→ 6 = os.date("!*t", timestamp1717200000).month4local day→ 1 = os.date("!*t", timestamp1717200000).day5print("year=" .. year2024)6print("month=" .. month6)7print("day=" .. day1)
    outputyear=2024
    month=6
    day=1
  1. timestamp ← 1735689600, year ← 2025, month ← 1, day ← 1

    1local timestamp→ 1735689600 = 17356896002local year→ 2025 = os.date("!*t", timestamp1735689600).year3local month→ 1 = os.date("!*t", timestamp1735689600).month4local day→ 1 = os.date("!*t", timestamp1735689600).day5print("year=" .. year2025)6print("month=" .. month1)7print("day=" .. day1)
    outputyear=2025
    month=1
    day=1