Date and time
How bosun writes times, dates, durations and ages, on screen and out loud, in every language it speaks.
On this page
Time aboard decides things: when the tide turns, when a watch ends, how long ago a reading arrived. A time that can be misread costs more at sea than ashore, so bosun writes times one way everywhere, always with the reference they are in, and leaves the language-specific formatting to the locale of the crew member reading it. The voice in the hero speaks the same moment in the vessel's local time, two hours ahead of UTC.
Times
Times are written on the 24-hour clock as hours and minutes, separated by a colon, followed by their
reference: 21:02 UTC, 06:40 UTC+2. There is no a.m. or p.m. Seconds appear only where they matter,
such as a MOB mark or a log entry.
Dates
Dates are formatted by the reader's locale through the i18n formatter, in one of three forms. The
examples below are English; the same date reads 6 oktober 2026 to a Dutch crew member. Month names are
written out: no form abbreviates them.
- Day heading, the weekday before the written date, over the entries of one day.
- Written in lists, tables, records and log entries.
- Numeric (ISO 8601, year first) only for exports, file names and sorting. A date such as
10-06-2026is the 10th of June in one country and the 6th of October in another. - No ordinals, except where the language writes one on the first of the month: 6 October, not 6th
October, but
1er marsin French.
Ranges
Ranges use to, not a hyphen. A screen reader and the voice read a hyphen as "dash" or "minus".
Durations and ages
A duration is floored, so it never says more time than there is, in at most two units, and written in the
language's short units: 2 hr 10 min in English, 2 Std. 10 Min. in German. A space separates the number
from its unit.
The age of a reading is how long ago it arrived, in one unit, floored, in SN.1/Circ.243's symbols, the same
in every language: 45 s, 3 min, 2 h, 5 d. A reading is not a minute old until a full minute has
passed. An alert's age adds the minutes to its hours: 1 h 25 min. The age appears beside the value it
describes, in a badge in the integrity color: yellow for a late reading and red for a lost one. The badge
shows the age alone; a screen reader hears "stale, 3 min old".
Relative and absolute time
A relative time says at a glance how fresh something is, and the time and its reference say when it was. A relative time is printed beside the time, never in its place, and only for the last 12 hours: past that, the date and time stand alone. A planned event reads as its time, because the crew plans around the clock; a countdown writes the time left first, then the moment.
| When | Write |
|---|---|
| Under a minute ago | 21:02 UTC · under 1 min ago |
| Within the last 12 hours | 12:00 UTC · 3 hr ago |
| Older | 3 October 2026, 21:02 UTC |
| A planned event | 14:30 UTC |
| An estimated arrival | ETA in 2 hr 10 min · 14:30 UTC |
Time zones
Every time on screen carries its reference: UTC, which the log, the forecast and the chart keep, or ship's
time with its offset (14:20 UTC+2). A component that shows a time takes the reference as a prop and
always prints it, so no time is shown without one. On the public site, which is read ashore, times follow
the reader's locale, the 12-hour clock included where the locale uses it; aboard, the 24-hour clock holds.
Spoken time
The voice says times in the vessel's local time, without "UTC", so the crew never convert while they listen. It speaks the 24-hour clock in the crew member's language unless they chose the twelve-hour form: "twenty-one oh two", "fourteen thirty", "fourteen hundred hours". It says durations in words with their units, with no "and": "two hours ten minutes". Relative times are spoken as they are written: "twelve minutes ago".
High water 16:42 UTC. The current turns north in 2 hr 5 min.
Reports and time-only inputs
A report date is a publication date. An updated date identifies a later revision; a reporting period describes which events or measurements the report covers. Keep these fields separate, use machine-readable date values where supported, and state the time reference for events that depend on a particular instant.
A time picker holds a clock time only; its timeReference prints the reference
beside it, UTC by default, as the log keeps times, and the date is the caller's. A duration is a different
quantity and takes its own field. Preserve unknown dates rather than substituting the time the page was generated.
Related
- Inclusive writing: ranges and labels that read correctly aloud.
- Data integrity: ages on stale and lost readings.
- Designing messages: times inside messages.