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

时间:2015-05-30 02:49:23

标签: java jodatime

我想在Java中打印一个只包含月份和日期(没有年份)的日期。它必须是本地化的,所以它打印“2015年5月”是美国,而“2015년5월”在韩国(注意在美国,这个月是在月之后,但在韩国它来了;所以模式像“MMMM” yyyy“不工作”。
我不在乎使用任何特定的库。我正在使用JDK 7,我尝试过与Joda-Time合作没有成功。

1 个答案:

答案 0 :(得分:0)

Java语言环境框架支持日常/时间,数字,货币等常见形式的国际化。对于日期/时间值,预定义格式集在Java Tutorial: Using Predefined Formats

中描述

不幸的是,“年月”并不是其中一种格式。

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

思考。

我不能告诉你为什么Java SE不支持这个,但我怀疑它是两件事的结合:

  • 很少有应用需要这个。 Java API设计人员是简约的...并且倾向于避免“膨胀”API,并支持仅为极少数应用程序提供便利的功能。

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

话虽如此,可以提交RFE。 (如果你准备等待多年以获得积极的结果。)