Applies ToSilverlight

Om denna uppdatering

Den 1 maj 2019 börjar den nya eran i den japanska kalendern. Detta är den första övergången från en epok till en annan sedan januari 1989. Den här uppdateringen för Microsoft Silverlight åtgärdar DateTime-beräkningar för hantering och formatering av nya epoker i den japanska kalendern.

Japanska erans stödfunktioner

Range-avkoppling

När Heisei (平成) eran slutar den 30 april, 2019 (Heisei (平成) 31), och den nya eran börjar den 1 maj 2019, "平成 31 年 5 月 1 日" blir ogiltigt. Vi har avslappnat våra tolkar för att tillåta framtida och tidigare datum (både gregorianska och japanska datum) omvandlas till en relevant japansk era datum utan att kasta ett undantag.

64 år i den tidigare japanska Showa-eran är t.ex. den längsta perioden. Aktuell Silverlight-kod kan inte tolka datumet om datumår är större än 64 för den aktuella tidsperioden. Om den försöker, kommer det att utlösa ett undantag.  Den här uppdateringen åtgärdar det här problemet och tolkar datumet även om året är större än maximalt antal era-år.

Följande exempel illustrerar ändringen:DateTime.Parse(“昭和 70/1/1 0:00:00", new CultureInfo("ja-JP") { DateTimeFormat = { Calendar = new JapaneseCalendar() } })

Det här exemplet kommer inte att utlösa ett undantag. I stället kommer den att tolka datum på rätt sätt och returnera 1/1/1995 12:00:00 am (70 – 64 = 6). (Heisei-eran startade i 1989; 1989 + 6 = 1995.)

Du kommer också att kunna konvertera framtida datum i Heisei till den nya japanska eran efter att den nya japanska erans namn tillkännagetts.  

Gannen (元年) för det första året av den japanska eran

I historisk praktik indikeras det första året av eraen av ett specialt tecken "Gan (元)" (vars kanji-tecken betyder "beskärning" eller "början") i stället för numrera "Ichi (1)". Det första året "Gannen (元年)" fortsätter fram till slutdatumet för det gregorianska kalender året, den 31 december.

Den här uppdateringen gör att Silverlight kan tolka Gannen (元年) tecken. 

Observera Silverlight kommer att fortsätta att returnera 01 och inte om Silverlight uppmanas att formatera det första datumet i eran. Detta kan åtgärdas genom att utvecklare ersätter år "01" med år "元".  En enkel strängersättning skulle åstadkomma detta.

Följande exempel beskriver hur Silverlight hanterar formatering och tolkning av Gannen (元年).

Formatering

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);

Beteende före uppdatering: formattedDate är "平成 01 年 01 月 08 日" Beteende efter uppdatering: formattedDate är "平成 01 年 01 月 08 日"

Det finns ingen förändring i beteendet jämfört med vad som fanns före uppdateringen.

Parsning

Ichinen (1 年)

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

Beteende före uppdatering: Returnerar True och har ett parseddate för {1/8/1989 12:00:00 am} Beteende efter uppdatering: Returnerar True och har ett parseddate för {1/8/1989 12:00:00 am}

Det finns ingen förändring i beteendet jämfört med vad som fanns före uppdateringen.

Gannen (元年)

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

Beteende före uppdatering: Returnerar false och har ett parseddate för {1/1/0001 12:00:00 am} Beteende efter uppdatering: Returnerar True och har ett parseddate för {1/8/1989 12:00:00 am}

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.