某些语言对完整日期格式的月名称与独立形式的月名称加以区分。在 Java 8 中,DateFormatSymbols 的 getMonthNames 和 getShortMonthNames 方法以这些有区分的语言的格式化形式返回月名称。在 Java 7 和先前版本中,这些方法返回独立形式的月名称。
在 Java 8 中,如果使用 DateFormat 和 SimpleDateFormat 类对日期时间值进行格式处理,那么还会使用对于格式处理首选的月名称,而不是使用独立版本的月名称。
根据语言和日期模式,使用 format 方法可能会返回不同的月名称。
在 Java 7 中,只有 M 表示日期格式化模式(例如 "yyyyy.MMMMM.dd")中的月份。在 Java 8 中,引入了 L 来表示独立形式,并且可以使用 L 来将行为改回到 Java 7 的行为。
M 年份中的月份(区分上下文)
L 年份中的月份(独立形式)
此规则会标记以下与日期相关的 API:
请复审已标记的代码来验证是否将在运行时显示正确的月名称。如果月名称现在以格式化形式显示,而在此情况下必须使用独立形式,请使用 L 而不是 M 来表示此月名称。如果您将不使用受影响的语言,或者要将月份的格式设定为数字,那么可忽略这些标记或关闭此规则。
有关其他信息,请参阅以下类的 Java 文档: