As indicated in the docs, you can set your calendar system using the ObjectProperty<Chronology> DatePicker . The method you need to do is
public final void setChronology(Chronology value)
Since there is no Persian / Iranian calendar system installed by default (only the hiraj system is implemented), you must write your own:
" Adding new calendars The set of available chronologies can be expanded by applications. Adding a new calendar system requires writing a chronology implementation, ChronoLocalDate and Era. Most of the logic specific to the calendar system will be implemented in the ChronoLocalDate implementation. The chronology implementation acts like a factory.
To enable the opening of additional chronologies, ServiceLoader is used. The file should be added to the META-INF / services directory with the name "java.time.chrono.Chronology", which lists the implementation classes. For more information about loading a service, see ServiceLoader. To search by identifier or type calendarType, the system is first displayed, in which calendars are displayed, and then the calendar calendars of the application.
Each timeline must define a timeline identifier that is unique to the system. If the chronology is a calendar system defined by the CLDR specification, then the calendar type is a concatenation of the CLDR type and, if applicable, the CLDR variant,
Implementation Requirements: This interface must be implemented with care to ensure that other classes work correctly. All implementations that can be created must be final, immutable, and thread safe. Subclasses should be Serializable where possible. "Source: https://docs.oracle.com/javase/8/docs/api/java/time/chrono/Chronology.html?is-external=true
source share