Skip to content
design
Foundations

Date and time

How bosun writes times, dates, durations and ages, on screen and out loud, in every language it speaks.

On this page
ALARMAnchor drag · 38 m outside swing circle · since 21:02 UTCACK
ETA in 2 hr 10 min · 14:30 UTCHW 16:42 UTC1 min
VOICE“Anchor drag since twenty-three oh two. Thirty-eight meters outside the swing circle.”
Times on the 24-hour clock with their reference, an age in one short unit, and the same moment spoken aloud.

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.

01One clock aboardTimes use the 24-hour clock, as watches, logs and tide tables do. 21:02 cannot be mistaken for the morning.
02Formatted by localeMonth names, word order and separators come from the reader’s language through the i18n formatter, never from a hand-written pattern.
03Ages say how oldA reading’s age is one short unit, floored, in SN.1/Circ.243’s symbols, the same in every language: 45 s, 3 min, 2 h; an alert’s age adds the minutes, 1 h 25 min. Minutes are min, because m is the meter.

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.

Short21:02 UTC
With seconds21:02:37 UTC
Ship's time21:02 UTC+2
Range14:00 to 18:00 UTC
Time formats
Do
WARNINGGusts above reef point forecast · since 21:40 UTCACK
Use the 24-hour clock. Nobody aboard has to work out whether it was morning or evening.
Don't
WARNINGGusts above reef point forecast · since 9:40 p.m.ACK
Don't use a.m. and p.m. A missed letter turns an evening event into a morning one.

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 headingTuesday 6 October 2026
Written6 October 2026
Numeric2026-10-06
Date forms, English locale
  • 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-2026 is 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 mars in French.

Ranges

Ranges use to, not a hyphen. A screen reader and the voice read a hyphen as "dash" or "minus".

Do
Watch 00:00 to 04:00 UTC
Write ranges with “to”. They read correctly on screen and aloud.
Don't
Watch 00:00-04:00 UTC
Don't write ranges with a hyphen. The voice reads “zero zero minus zero four”.

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".

Do
8.4mlast seen 8 min
Write minutes as min. Next to a depth in meters, there is no doubt what 8 min means.
Don't
8.4m8m
Don't write minutes as m. Beside a depth of 8.4 m, an age of “8m” reads as eight meters.

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.

WhenWrite
Under a minute ago21:02 UTC · under 1 min ago
Within the last 12 hours12:00 UTC · 3 hr ago
Older3 October 2026, 21:02 UTC
A planned event14:30 UTC
An estimated arrivalETA 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".

Tide turning

High water 16:42 UTC. The current turns north in 2 hr 5 min.

VOICE“High water at eighteen forty-two. The current turns north in about two hours.”

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.