Concepts & human language

What dates, times, instants, and zones actually mean — before any code.

What is "a time"? Colloquial “around 3pm” vs precise to-the-millisecond — and how context sets the meaning. What is "a date"? A calendar day — birthday, civil date, contextual — and why it isn’t a point in time. Instant vs civil time The single most important distinction — a point on the timeline vs a reading on a calendar/clock. Points vs periods A value names a single point or a whole span — an axis orthogonal to instant-vs-civil, and one no type system models well. Time zones vs offsets A fixed +02:00 offset is not the same as a named zone like Europe/Paris. DST & the edges Spring-forward gaps make some local times nonexistent; fall-back overlaps make others ambiguous. Durations & intervals Spans vs points — and why “1 month” and “30 days” are not the same thing. Wall clock vs monotonic Which clock to use — one can jump backward, the other only ever moves forward. The environment is an input Your runtime carries implicit, mutable global state — the default zone, the locale, the clock, the bundled tz data — and any call that reads it silently inherits an answer you never chose. Precision & resolution Seconds, millis, micros, nanos — and the bugs born when systems disagree. Calendars & leaps Gregorian rules, leap years, leap seconds, and ISO week dates.