Concepts & human language

What is "a time"?

Colloquial "around 3pm" vs precise to-the-millisecond — and how context sets the meaning.

The word “time” is severely overloaded in everyday speech. It can mean a time-of-day reading (“meet me at 3 PM”), an absolute instant on the universal timeline (“the server crashed at 14:03:07.421Z”), or a duration (“the build took 4 minutes”). Colloquial usage is deliberately fuzzy — “lunchtime”, “around 3-ish”, “this afternoon” are all comprehensible to humans, but machines require a precise, unambiguous representation.

The right representation depends entirely on the context of use. A birthday needs only a calendar day — no clock time, no time zone. A scheduling system needs a civil time plus a time zone so it can know when the alarm fires in absolute terms. A race finish line needs milliseconds, or even microseconds. Choosing a representation that is either too coarse or too fine for the task introduces bugs.

Context determines required precision

Before picking a type or data format, ask: is this a human-calendar concept, an absolute moment, or a length of time? The answer drives everything else — storage format, serialisation, arithmetic rules, and display.

Pitfall: Treating a vague requirement like “store the appointment time” as automatically meaning a UTC timestamp. If the intent is civil (“the meeting is at 9 AM, even if the government changes DST next month”), storing only a UTC instant will produce the wrong wall-clock time after a timezone rule change.

Go deeper: the three distinct concepts hiding behind "time"

Precision about which concept you mean prevents entire classes of bugs:

  1. Instant — a point on the universal timeline, independent of any timezone. Represented as a UTC timestamp or a Unix epoch value. Two observers anywhere agree on whether event A happened before event B.

  2. Civil time — a reading on a human calendar and clock, meaningful only within a specific timezone context (“9 AM Monday in Europe/Paris”). See Instant vs civil time for why mixing these two is the root of most date bugs.

  3. Duration — a length of time. Can be exact (“3600 seconds”) or calendar-relative (“1 month”), and these behave very differently. See Durations & intervals.

The colloquial word “time” silently switches between all three. Making the intended meaning explicit in code — through type choice, variable naming, and documentation — is a hallmark of correct date/time handling.

A fourth concept, precision (how finely the value is measured), is orthogonal to the above. See Precision & resolution.


← Back to all topics