Non-Gregorian dates and calendars How can I use my native calendar in Drupal?
I set Drupal to use Farsi and set Asia/Theran as default location, but the month names and years are still from the Gregorian calendar, even if they are translated in Persian.

Is there any coding method to use a calendar that is not the Gregorian one?
It is possible, but not currently in the queue for Drupal 8 core.  There is nothing stopping it from being a contrib module, though, or being added to the Datetime Extras.

Essentially, the internals of Drupal are based around the PHP \Datetime class1, which uses the Gregorian calendar.  Custom code would have to convert back and forth between this system.

I think two places would need to be updated:


Widgets would need to be created for timestamps and datetime fields to convert to the Gregorian calendar when a user enters a date.   These widgets could then be configured every place fields are used (eg, via Manage Form Display).
A new date formatter service would need to be created to convert Gregorian dates to the other calendar system for when dates are rendered.  The glitch here is that the date placeholders are baked into the field formatters in several places.  New field formatters may also be needed to handle these cases.  It would also be possible to just use new field formatters, but there are places in code that call out to the date formatter service directly (for non-field uses).  Also keep in mind that there are places in core that don't use the date formatter service and call format_date() or date() directly (this is a known issue that will be addressed).


Also keep in mind that some things need to stay in the Gregorian calendar, and render out that way.  The main place that pops into my head are where the ISO 8601 format is used, which happens in the RDFa module and when things like the HTML5 &lt;time&gt; element gets rendered out with the datetime attribute.

1 This is a huge simplification from how datetime and timestamps are handled by core, but the heart is still the native \Datetime class.