Skip to content
Novus Examples
json2 KB

Non-Gregorian Calendar Eras — Japanese, ROC, Buddhist, Hijri, Hebrew

Era and era-year for one instant across five calendar systems. The three whose months and days align with the Gregorian calendar — Japanese (Reiwa 8), ROC (Minguo 115) and Thai Buddhist (2569) — carry a full rendered date; the Hijri and Hebrew entries carry the year only, because their day and month depend on the calculation variant and, for Hijri, on observation. Saying so is the point of the fixture.

Preview — first 50 linesjson
{
  "note": "Only calendars whose month and day align exactly with the Gregorian calendar are given a full date here. Hijri and Hebrew dates depend on the calculation variant (and, for Hijri, on observation), so those entries deliberately carry the YEAR RANGE only and must not be tested to the day against this file.",
  "instant": "2026-03-14T09:05:00Z",
  "gregorian": {
    "year": 2026,
    "rendered": "14 March 2026",
    "aligned": true
  },
  "calendars": [
    {
      "calendar": "japanese",
      "locale": "ja-JP",
      "era": "令和 (Reiwa)",
      "eraYear": 8,
      "rendered": "令和8年3月14日",
      "aligned": true,
      "note": "Reiwa 1 began 1 May 2019, so Gregorian 2026 is Reiwa 8 for the whole year."
    },
    {
      "calendar": "roc",
      "locale": "zh-TW",
      "era": "民國 (Minguo)",
      "eraYear": 115,
      "rendered": "民國115年3月14日",
      "aligned": true,
      "note": "Minguo year = Gregorian year - 1911."
    },
    {
      "calendar": "buddhist",
      "locale": "th-TH",
      "era": "พ.ศ. (BE)",
      "eraYear": 2569,
      "rendered": "14 มีนาคม พ.ศ. 2569",
      "aligned": true,
      "note": "Thai Buddhist year = Gregorian year + 543."
    },
    {
      "calendar": "islamic",
      "locale": "ar-EG",
      "era": "هـ (AH)",
      "eraYear": 1447,
      "rendered": null,
      "aligned": false,
      "note": "1447 AH spans roughly late June 2025 to mid June 2026. Month and day depend on the variant (umalqura, civil, tbla) and are NOT asserted here."
    },
    {
      "calendar": "hebrew",
      "locale": "he-IL",
      "era": "AM",
      "eraYear": 5786,
58 lines total — download for the full file.

Specifications

Calendars
5
Instant
2026-03-14T09:05:00Z
Fully Asserted
japanese, roc, buddhist (month and day align with Gregorian)
Year Only
islamic, hebrew (variant-dependent — deliberately not asserted to the day)
Seed
20260807
Wave
p7
Line Endings
LF

Testing contract

Reference control
Scenario
Ask your calendar layer for the era and era-year of the given instant in each of the five systems.
Expected result
Reiwa 8, Minguo 115 and BE 2569 match to the day; 1447 AH and 5786 AM match on the year while the month and day legitimately differ between variants, so a test that pins them must name its own variant rather than trusting this file.

What is a .json file?

JSON (JavaScript Object Notation) is a lightweight, text-based data-interchange format representing objects, arrays, strings, numbers, booleans, and null. It is language-independent, human-readable, and the dominant format for web APIs and configuration. It requires a single well-formed root value.

How to use this file

Use an example JSON file to test parsers and serializers, schema validation, Unicode and number-precision handling, and API request or response processing.

How to use this file for testing

“Non-Gregorian Calendar Eras — Japanese, ROC, Buddhist, Hijri, Hebrew” is a deterministic Novus Examples fixture for Internationalization, JSON parsing, Localization catalogs. Parallel text and accented, multi-script content — for testing translation pipelines, Unicode handling, and localization tooling.

Documented properties for this file: seed 20260807 · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Translation-catalog fixtures carry the same message set across formats, each with its native placeholder syntax. Test your i18n loader, catalog converter, or translation-memory tool, and use the RTL and CJK variants to check bidirectional text and Unicode handling.

Load the catalog with your i18n framework and verify placeholder interpolation and plural handling; the RTL and CJK variants exercise bidirectional text and font fallback.

Code examples

import json

with open("calendar-eras.json") as f:
    data = json.load(f)
print(type(data), len(data))

Generated by generation/localization_p7.py. Free for any use, no attribution required — license.