如何在Java中打印只有月和日(无年)的本地化日期?

如何在Java中打印只有月和日(无年)的本地化日期?,java,jodatime,Java,Jodatime,我想用Java打印一个日期,只包含月份和日期(没有年份)。它必须本地化,以便打印“2015年5月”是美国,以及“2015年”년 5.월" 在韩国(请注意,在美国,年份在月份之后,但在韩国,年份在月份之前;因此“MMMM-yyyy”等模式不起作用)。 我不想使用任何特定的库。我使用的是JDK 7,我尝试过使用Joda Time,但没有成功。Java语言环境框架支持日期/时间、数字、货币等一些常见形式的国际化。对于日期/时间值,一组预定义的格式如中所述 不幸的是,“年和月”不是格式之一 这只剩下一个

我想用Java打印一个日期,只包含月份和日期(没有年份)。它必须本地化,以便打印“2015年5月”是美国,以及“2015年”년 5.월" 在韩国(请注意,在美国,年份在月份之后,但在韩国,年份在月份之前;因此“MMMM-yyyy”等模式不起作用)。

我不想使用任何特定的库。我使用的是JDK 7,我尝试过使用Joda Time,但没有成功。

Java语言环境框架支持日期/时间、数字、货币等一些常见形式的国际化。对于日期/时间值,一组预定义的格式如中所述

不幸的是,“年和月”不是格式之一

这只剩下一个选项。请编写代码以支持多种格式,并根据要渲染/显示的区域设置手动选择最合适的格式


投机

我无法告诉您为什么Java SE不支持这一点,但我怀疑这是两方面的结合:

  • 很少有应用程序需要这样做。Java API设计人员非常吝啬……并且倾向于避免“膨胀”API,因为它们支持的功能只适合极少数应用程序使用

  • 显示年/月的惯例是不固定的。例如,你说美国的惯例是“2015年5月”,但在某些情况下,可以接受甚至更可取地显示为“2015年5月”。面对这种流动性,我可以理解为什么Sun/Oracle工程师可能不想参与这场辩论


话虽如此,提交RFE是可能的(如果你准备等待数年,等待一个积极的结果)

通过编码,您尝试了什么?请在发布前搜索。这在StackOverflow上已经被询问和回答了很多次。谢谢@vwrangler。我担心没有办法,正如您所说。坚持格式模式可能是我最好的选择。