如何在 Java 中打印只有月和日(无年)的本地化日期?
How to print a localized date with only month and day (no year) in Java?
我想在 Java 中打印一个仅包含月份和日期(没有年份)的日期。它必须本地化,所以它打印 "May 2015" 是美国,而在韩国是“2015년 5월”(请注意,在美国,年份在月份之后,但在韩国,它在月份之前;所以模式如 "MMMM yyyy" 不工作)。
我不关心使用任何特定的库。我正在使用 JDK 7,我尝试使用 Joda-Time 没有成功。
Java语言环境框架支持日期/时间、数字、货币等一些常见形式的国际化。对于日期/时间值,预定义格式集在 Java Tutorial: Using Predefined Formats.
中进行了描述
很遗憾,"year and month" 不是其中一种格式。
这让您只有一个选择。编写您的代码以支持多种格式,select 根据您呈现/显示的语言环境选择最合适的格式。手动.
推测。
我不能告诉你为什么 Java SE 不支持这个,但我怀疑这是两件事的结合:
很少有应用程序需要这个。 Java API 设计人员非常节俭...并且倾向于避免 "bloating" API 支持仅对极少数应用程序方便的功能。
显示年/月的惯例是流动的。例如,您说美国的惯例是 "May 2015",但在某些情况下,显示为“2015 年 5 月”是可以接受的,甚至更可取。面对这种流动性,我可以理解为什么 Sun / Oracle 工程师可能不想参与辩论。
话虽如此,可以提交 RFE。 (如果您准备等待数年才能获得积极成果。)
我想在 Java 中打印一个仅包含月份和日期(没有年份)的日期。它必须本地化,所以它打印 "May 2015" 是美国,而在韩国是“2015년 5월”(请注意,在美国,年份在月份之后,但在韩国,它在月份之前;所以模式如 "MMMM yyyy" 不工作)。
我不关心使用任何特定的库。我正在使用 JDK 7,我尝试使用 Joda-Time 没有成功。
Java语言环境框架支持日期/时间、数字、货币等一些常见形式的国际化。对于日期/时间值,预定义格式集在 Java Tutorial: Using Predefined Formats.
中进行了描述很遗憾,"year and month" 不是其中一种格式。
这让您只有一个选择。编写您的代码以支持多种格式,select 根据您呈现/显示的语言环境选择最合适的格式。手动.
推测。
我不能告诉你为什么 Java SE 不支持这个,但我怀疑这是两件事的结合:
很少有应用程序需要这个。 Java API 设计人员非常节俭...并且倾向于避免 "bloating" API 支持仅对极少数应用程序方便的功能。
显示年/月的惯例是流动的。例如,您说美国的惯例是 "May 2015",但在某些情况下,显示为“2015 年 5 月”是可以接受的,甚至更可取。面对这种流动性,我可以理解为什么 Sun / Oracle 工程师可能不想参与辩论。
话虽如此,可以提交 RFE。 (如果您准备等待数年才能获得积极成果。)