Как использовать NODATIME для персидского в C#?

nodatime 1.3 released, но я хочу использовать nodatime в c# для персидского времени даты. как я могу показать персидское время с Noda Time?

var london = DateTimeZoneProviders.Tzdb["Europe/London"];"

Что я должен сделать для персидского?

1 ответ

Решение

Вам нужно явно использовать персидский календарь.

Например:

var calendar = CalendarSystem.GetPersianCalendar();
var zone = DateTimeZoneProviders.Tzdb["Europe/London"];

var now = SystemClock.Instance.Now.InZone(zone, calendar);
// Now you can get the month, etc.

Или создать LocalDate или же LocalDateTimeпросто передайте календарь в качестве последнего аргумента в вызове конструктора:

var localDate date = new LocalDate(1393, 4, 17, calendar);

Обратите внимание, что используется часовой пояс Лондона в системе персидского календаря. Календарные системы и часовые пояса - это очень разные вещи. Если вы хотите, например, часовой пояс Тегерана, вы должны использовать:

var zone = DateTimeZoneProviders.Tzdb["Asia/Tehran"];
Другие вопросы по тегам