Datum nese rok jen tehdy, když bez něj není jednoznačné. Míra přesnosti se odvozuje od dneška, ne od typu záznamu — stejné pravidlo platí pro termín úkolu, datum schůzky i datum narození.

Datum v aktuálním roceúkol, schůzka, poznámka — drtivá většina dat v appce 26. 8. dd.mm.
Jiný rok, stejné století2000–2099 — dvojciferný rok je čitelný bez domýšlení 14. 11. 27 dd.mm.rr
Jiné stoletítypicky datum narození 11. 2. 1988 dd.mm.rrrr

Mezinárodní formáty

Pravidlo určuje jen přesnost roku. Pořadí složek, oddělovače a mezery patří locale — proto platí beze změny i v dalších jazycích.

letosjiný rokjiné století cs-CZ26. 8.14. 11. 2711. 2. 1988 en-US8/2611/14/272/11/1988

Odvozené tvary

Datum a čas — datum drží stejné pravidlo roku: 26. 8. 9:14

Dlouhý tvar pro nadpisy a věty: 14. července 2026 — rok se tu píše vždy, dlouhý tvar není úsporný tvar.

Měsíc a rok pro hlavičky přehledů: červenec 2026

Implementace

Jediný zdroj pravdy je apps/web/src/i18n/date-core.ts (pravidlo, bez závislostí) + i18n/dates.ts (dosazuje jazyk uživatele). Obrazovky volají formatDate, formatTime, formatDateTime.

Hodnota pro <input type="date"> a API je záměrně locale-nezávislé ISO — toDateInputValue(), nikdy formatDate.

Co se nedělá

Žádné toLocaleDateString ani ruční ${d.getDate()}. ${d.getMonth()+1}. v obrazovkách — obojí obchází pravidlo roku a zadrátovává češtinu natvrdo.

U datumů se nepoužívají tabular-nums: datum se čte jako text, ne jako číslo porovnávané po řádcích.

Datum bez roku se nesmí objevit u záznamu z jiného roku — „14. 11." je pak k nerozeznání od letošního.