Applies ToSilverlight

关于此更新程序

2019 年 5 月 1 日,新日本年代日历开始使用了。 这是自 1989 年 1 月以来首次从一个年代过渡到另一个年代。 此 Microsoft Silverlight 更新修复了 DateTime 计算,以处理新的日本年代日历以及对其设置格式。

支持日本年代的功能

Range-Relaxation

当 Heisei(平成)年代于 2019 年 4 月 30 日(Heisei(平成)31)结束而新的年代从 2019 年 5 月 1 日开始时, “平成 31 年 5 月 1 日” 就变为无效。 我们已经放松了分析程序,允许将来和过去的日期(公历和日本日期)转换为相关的日本年代日期,而不引发异常。

例如,对于之前的日本昭和时代,最大纪年是 64。 如果当前年代的日期年份大于 64,目前的 Silverlight 代码就无法分析日期。 如果它尝试,将会引发异常。  此更新修复了此问题,即使在年份大于最大纪年时也能分析日期。

以下示例说明了此更改: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。)

在宣布新的日本年代名称后,您还可以将平成的未来日期转换为新的日本年代。  

Gannen (元年) 是日本年代的第一年

在历史实践中,年代的第一年是由一个特殊的字符“Gan (元)”(其汉字意思是“起源”或“开始”)而不是数字“Ichi (1)”。 第一年“Gannen (元年)”将继续,直到公历年的结束日期 12 月 31 日。

此更新将允许 Silverlight 成功分析 Gannen (元年) 字符。 

注意如果请求 Silverlight 格式化年代的第一个日期, Silverlight 将继续返回 01,而不会返回 。 这可以通过让开发人员把“元”替换成“01”年来解决。  一个简单的字符串替换就可以完成此操作。

下面的示例详细介绍了 Silverlight 如何处理 Gannen (元年) 的格式和分析。

格式设置

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 日”

与更新之前的情况相比,行为没有任何变化。

分析

Ichinen (1 年)

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

更新前的行为: 返回 trueparsedDate 为 {1/8/1989 12:00:00 AM} 更新后的行为: 返回 trueparsedDate 为 {1/8/1989 12:00:00 AM}

与更新之前的情况相比,行为没有任何变化。

Gannen (元年)

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

更新前的行为: 返回 false parsedDate 为 {1/1/0001 12:00:00 AM} 更新后的行为: 返回 trueparsedDate 为 {1/8/1989 12:00:00 AM}

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。