The ptvz interchange profile

ptvz encodes Gregorian calendar facts with glyphs from [a-zA-Z0-9_]. We omit slashes, dashes (except inside intervals), fractional-second punctuation, and colons paired with explicit polarity signs so filenames stay easy to select without odd token boundaries while remaining human-scannable versus ISO basic strings.

Plain ISO 8601 literals (hyphens, colons, offsets): see the companion ISO 8601 cheatsheet.

Design goals

  • Keep Gregorian month order when you sort ASCII.
  • Use two-digit years by default but expand centuries with predictable rules.
  • Encode clocks as HHMM plus one-letter UTC offsets (whole hours only).
  • Compose ordinal, ISO-week, and quarterly pieces without inventing new separators.
  • Defer sub-minute precision back to ISO 8601 literal forms when unavoidable.

Naming & glyphs

Gregorian months gain abcd… lettering by bending month stems; tail letters spell ptvz, naming the profile:

GlyphName flavorGregorian month
aanuaryJanuary
bbruaryFebruary
ccarchMarch
ggaprilApril
hhayMay
iiuneJune
kkulyJuly
mmogustAugust
ppemberSeptember
ttoberOctober
vvemberNovember
zzemberDecember

Literal month letters stick to lowercase. Two-digit Gregorian years occupy the tens/ones columns before the glyph.

Calendar dates

A full Gregorian day anchored in the local century slice looks like YY + glyph + DD (never omitting DD on full stamps).

2025-12-11 → 25z11
1981-04-05 → 81g05

You can shorten tokens when surrounding context fills in fields; rely on ISO literals when you truly need explicit centuries.

ISO-aligned week grids

Monday 29 December 2008 → ISO 2009-W01-1 ≡ ptvz 09W01D1

ISO week numbering: the calendar week holding the first Thursday counts as week 1. Day-of-week uses D1 through D7 (Sunday). Whole weeks drop the trailing Dn segment.

Ordinal & solar counters

1981 day 095 (Apr 05) ⇒ 81D095

Quarter macro tokens

25Q4 → final quarter trio of Gregorian year 2025

Wall clock + zone letters

ptvz uses compact 24-hour clock notation rather than 12-hour AM/PM forms: hours run from 0000 at the start of the day to 2359, with 2400 reserved only for the exact end of a dated interval. ptvz writes the military-style four digits without a colon, then appends a zone letter.

T00:00+00 → 0000Z
T12:00+00 → 1200Z
T13:47+00 → 1347Z
T05:02+01 → 0502A
T09:15 local → 0915J
T13:47-05 → 1347R

Zone letters follow the military/NATO convention for whole-hour offsets from UTC: east of Greenwich uses A through M (skipping J), west uses N through Y, and Z means UTC itself ("Zulu"). ptvz also accepts the letter J for local time, matching common military usage of "Juliett" when the wall clock should be interpreted in the observer's local zone rather than as a fixed UTC offset.

Offset familyLettersExample
UTC+01 through UTC+12A B C D E F G H I K L M0502A = 05:02 at UTC+01
UTC-01 through UTC-12N O P Q R S T U V W X Y1347R = 13:47 at UTC-05
UTCZ0000Z = midnight UTC
Local timeJ0915J = 09:15 in the observer's local zone

The letter names are offset designators, not civil zone names: for example, R always means UTC-05:00 even if a place later shifts for daylight saving time. By contrast, J deliberately leaves the underlying offset implicit. Regions like +05:30 or +09:30 do not fit the offset alphabet and must round-trip via ISO literals or companion metadata.

Date with wall clock

2007-04-05 local 12:30 with −01 ⇒ 07g05_1230N

Underscores join date + wall clock blocks so double-click selection spans both tokens cleanly.

Intervals

07c01_1300Z → 08h11_1530Z ⇒ 07c01_1300Z-08h11_1530Z

Dash alone encodes ranged intervals.

Operational guidance

  • Use ISO literals when you need spelled-out centuries.
  • Use ptvz for journals, filenames, logs, and scraps anywhere ASCII beats long literals.
  • Feed automation through converters that infer missing century slices the same way every time.