Конвертируйте календари друг в друга. Используйте библиотеку NodaTime.

2

Я использую Noda Time для обработки проблем DateTime, я читаю почти все документы, но у меня есть проблема с преобразованием календарей друг другу,

  • Во-первых, сколько календарей поддерживается Noda?

    Как CalendarSystem говорит, что всего 4 календаря:

    a) CopticCalendar/b) GregorianCalendar/c) Исламский календарь /d ) JulianCalendar

    а как насчет других систем календаря?

  • Я использую Персидский календарь aka Jalali Calendar, так можно ли использовать этот календарь в NodaTime? И как преобразовать его в григорианский календарь?

  • Конечная цель для меня - конвертировать как Time (в специальной зоне), так и Date в часовой пояс UTC и Georgian Calendar. Например Сейчас (yyyy/MM/dd - HH:mm:ss) в Asia/Tehran Часовой пояс и персидский календарь: (1391/06/30 - 10:01:15) и Сейчас на грузинском языке Календарь и UTC (2012/09/20 - 05:01:15), так что вы предлагаете? Время индивидуально не имеет значения, но дата, я не имею ни малейшего представления об этом (в NodaTime), и есть ли способ конвертировать оба из них в один процесс или метод?

  • 1
    Свяжитесь с Джоном Скитом.
Теги:
datetime
calendar
nodatime

2 ответа

3
Лучший ответ
  • Да, в настоящее время это единственные системы календаря, которые мы поддерживаем.

  • Нет, у нас нет поддержки персидского календаря на данный момент. Вы можете подать запрос на функцию, но мы, скорее всего, будем заинтересованы в том, чтобы начать с 1.0, но я боюсь.

  • Непонятно, что вы подразумеваете под "специальной зоной" - но это снова звучит, вам нужен персидский календарь, чтобы это действительно работало. Если .NET поддерживает персидский календарь, вы можете сначала проанализировать его до DateTime, а затем преобразовать его в тип времени Noda... Извините, что мы не поддерживаем персидский календарь на данный момент, и я "Мне нравится поддерживать календари BCL через типы обертки (как и для TimeZoneInfo), но это не скоро. Я боюсь.

0

Для других, которые ищут похожие ключевые слова, добавлена ​​поддержка персидского календаря (в настоящее время я использую v1.3).

Некоторые календари имеют больше настроек, поэтому этот пример упрощен:

    var now = DateTime.Now;
    var nodaNow = new NodaTime.LocalDate(now.Year, now.Month, now.Day);
    var cal = nodaNow.WithCalendar(CalendarSystem.GetPersianCalendar());

    Console.WriteLine(cal.ToString());

Ещё вопросы

Сообщество Overcoder
Наверх
Меню