Преобразование между разными календарями (григорианский / юлианский) в WinRT… Windows.Глобализация.Календарь?

#c# #calendar #windows-runtime #windows-store-apps #globalization

#c# #Календарь #windows-среда выполнения #windows-store-приложения #глобализация

Вопрос:

Я ищу способ конвертировать между григорианским и юлианским календарями в WinRT.

Обычно я бы использовал дату и время.Из загружаемого и DateTime.ToOADate, но эти методы недоступны. Итак, я нашел Windows.Глобализация.Тип календаря, который, похоже, имеет какой-то метод ChangeCalendarSystem. Но кто знает, как работает этот тип? Метод, похоже, принимает что-то приятное, Windows.Глобализация.Идентификаторы календаря.Джулиан, но теперь я начинаю задаваться вопросом…

И, конечно, никаких реальных документов, никаких блогов, ничего — или, может быть, я ошибаюсь 😉

Кто-нибудь может помочь пролить некоторый свет на то, как работает тип в этом отношении, или, может быть, указать мне правильные типы?

Ответ №1:

Windows.Глобализация.Календарь — это правильная вещь для использования. Если вы хотите преобразовать из григорианского в юлианский, установите календарную систему в григорианскую с помощью ChangeCalendarSystem, затем установите для составляющих (начиная с самого большого первого: год, месяц, день, …) их григорианские значения. Наконец, измените систему календаря на юлианскую, а затем получите составляющие.

Если вы просто хотите отформатировать значение в другой календарной системе, вы можете использовать DateTimeFormatter, созданный с конкретной календарной системой.