如何解决Java DateFormat.HORT与全年?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (51)

有什么方法可以使DateFormat格式化为一年的日期(例如12/12/2010),当使用DateFormat.SHORT模式时?必须在en_US和da_DK中格式化日期。

我知道可以使用DateFormat.MEDIUM,但日期必须仅使用数字和分隔符进行格式化,并且DateFormat.MEDIUMen_US会生成类似“2010年12月12日”的内容。

提问于
用户回答回答于

如果两种格式相同,那么只需使用:

DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
private static Map<Locale, String> formats = new HashMap<Locale, String>();

static {
    formats.put(new Locale("en_US"), "dd/MM/yyyy");
    formats.put(new Locale("da_DK"), "dd.MM.yyyy");
}
new SimpleDateFormat(formats.get(locale)).format(..);
用户回答回答于

java.time

        String pattern =
            DateTimeFormatterBuilder
                .getLocalizedDateTimePattern
                    ( FormatStyle.SHORT
                    , null
                    , IsoChronology.INSTANCE
                    , locale
                    );
        pattern = pattern.replace("yy", "yyyy");
        DateTimeFormatter dtf =
            DateTimeFormatter.ofPattern(pattern);

扫码关注云+社区

领取腾讯云代金券