Formatting dates¶
hebrewcal.formatting.dates renders dates as text. Gregorian dates have numeric styles;
Hebrew dates have a numeric style and a named style that uses the
name tables.
Gregorian¶
>>> from hebrewcal import GregorianDate
>>> from hebrewcal.formatting.dates import format_gregorian
>>> g = GregorianDate(2026, 6, 26)
>>> format_gregorian(g, style="iso")
'2026-06-26'
>>> format_gregorian(g, style="din")
'26.06.2026'
Style |
Output |
Notes |
|---|---|---|
|
|
ISO 8601, zero-padded |
|
|
DIN 5008, day-first |
Hebrew¶
>>> from hebrewcal import HebrewDate
>>> from hebrewcal.formatting.dates import format_hebrew
>>> h = HebrewDate(5785, 7, 1)
>>> format_hebrew(h, style="named")
'1 Tishri 5785'
>>> format_hebrew(h, style="numeric")
'5785-07-01'
The "hebrew" style renders the date in native Hebrew script, with the day and year as
gematria numerals:
>>> format_hebrew(HebrewDate(5785, 7, 1), style="hebrew")
'א׳ תשרי ה׳תשפ״ה'
The named style understands leap-year month naming (Adar I / Adar II):
>>> format_hebrew(HebrewDate(5784, 12, 1), style="named")
'1 Adar I 5784'
>>> format_hebrew(HebrewDate(5784, 13, 1), style="named")
'1 Adar II 5784'
Round-tripping with parsing
format_gregorian(g, "iso") and format_gregorian(g, "din") both produce strings that
parse_gregorian reads back into the same date — handy for storage and display layers
that disagree on format.
An unknown style raises ValueError:
>>> format_gregorian(g, style="rfc")
Traceback (most recent call last):
...
ValueError: unknown style: 'rfc'