Applies ToSilverlight

Об этом обновлении

1 мая 2019 г. начинается новая эра в японском календаре. Это первый переход от одной эры к другой с января 1989 г. Это обновление для Microsoft Silverlight исправляет вычисления ДатаВремя для обработки и форматирования новых эр в японском календаре.

Функции, поддерживающие японскую эру

Range-Relaxation

Когда 30 апреля 2019 г. (Хэйсэй (平成) 31) эра Хэйсэй (平成) закончится и 1 мая 2019 г. начнется новая эра, «平成 31 年 5 月 1 日» становится недействительным. Мы ослабили наши средства синтаксического анализа, чтобы можно было преобразовывать будущие и прошлые даты (как григорианского, так и японского календаря) в релевантную дату японской эры без исключений.

Например, максимальный год предыдущего японского периода Сёва является 64. Текущий код Silverlight не может проанализировать дату, если для текущей эры год в дате больше 64. В такой ситуации возникает исключение.  Обновление устраняет эту проблему и анализирует дату, даже если указанный год превышает максимальный год периода.

В следующем примере показано это изменение:DateTime.Parse(“昭和 70/1/1 0:00:00", new CultureInfo("ja-JP") { DateTimeFormat = { Calendar = new JapaneseCalendar() } })

Этот пример не вызовет исключение. Вместо этого он будет успешно анализировать дату и возвращать 1/1/1995 12:00:00 AM (70 – 64 = 6). (эра Хэйсэй началась в 1989 г.; 1989+6 = 1995.)

Вы также сможете преобразовать будущие даты Хэйсэй в новую японскую эру после объявления названия новой японской эры.  

Ганнэн (元年) для первого года японской эры

В исторической практике первый год эры обозначается специальным символом «Ган (元)» (чей иероглиф означает «происхождение» или «начало»), а не цифрой «ичи (1)». Первый год «Ганнэн (元年)» заканчивается в последний день григорианского календаря, 31 декабря.

Это обновление позволит Silverlight анализировать символы Ганнэн (元年). 

Примечание Silverlight продолжит возврат 01, а не , если Silverlight попросят отформатировать первую дату эпохи. Это может быть исправлено, если разработчики заменят год «01» на год «元».  Для этого потребуется замена строки.

Следующие примеры описывают, как Silverlight обрабатывает форматирование и анализ Ганнэн (元年).

Форматирование

string pattern = "gg yyyy'\u5E74' MM'\u6708' dd'\u65E5'"; //"gg yyyy'年' MM'月' dd'日'"

DateTime dt = new DateTime(1989, 01, 08); // Start of Heisei Era

string formattedDate = dt.ToString(pattern, jpnFormat);

Поведение перед обновлением: formattedDate "平成 01年 01月 08日" Поведение после обновления: formattedDate "平成 01年 01月 08日"

Изменения в поведении до обновления отсутствуют.

Анализ

Ичинэн (1 年)

DateTime.TryParseExact("平成 01年 01月 08日", pattern, jpnFormat, DateTimeStyles.None, out parsedDate)

Поведение перед обновлением: Возвращает значение true и имеет значение parsedDate {1/8/1989 12:00:00 AM} Поведение после обновления: Возвращает значение true и имеет значение parsedDate {1/8/1989 12:00:00 AM}

Изменения в поведении до обновления отсутствуют.

Ганнэн (元年)

DateTime.TryParseExact("平成元年 01月 08日", pattern, jpnFormat, DateTimeStyles.None, out parsedDate)

Поведение перед обновлением: Возвращает значение false и имеет значение parsedDate {1/1/0001 12:00:00 AM} Поведение после обновления: Возвращает значение true и имеет значение parsedDate {1/8/1989 12:00:00 AM}

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.