某些语言的月名称格式的行为更改

某些语言对完整日期格式的月名称与独立形式的月名称加以区分。在 Java 8 中,DateFormatSymbolsgetMonthNamesgetShortMonthNames 方法以这些有区分的语言的格式化形式返回月名称。在 Java 7 和先前版本中,这些方法返回独立形式的月名称。

在 Java 8 中,如果使用 DateFormatSimpleDateFormat 类对日期时间值进行格式处理,那么还会使用对于格式处理首选的月名称,而不是使用独立版本的月名称。 根据语言和日期模式,使用 format 方法可能会返回不同的月名称。

在 Java 7 中,只有 M 表示日期格式化模式(例如 "yyyyy.MMMMM.dd")中的月份。在 Java 8 中,引入了 L 来表示独立形式,并且可以使用 L 来将行为改回到 Java 7 的行为。

    M   年份中的月份(区分上下文)
    L   年份中的月份(独立形式)

此规则会标记以下与日期相关的 API:

请复审已标记的代码来验证是否将在运行时显示正确的月名称。如果月名称现在以格式化形式显示,而在此情况下必须使用独立形式,请使用 L 而不是 M 来表示此月名称。如果您将不使用受影响的语言,或者要将月份的格式设定为数字,那么可忽略这些标记或关闭此规则。

有关其他信息,请参阅以下类的 Java 文档: