我在Java中有用例,我们要获取特定于语言环境的日期。我正在使用DateFormat.getDateInstance

final DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM,
                Locale.forLanguageTag(locale)));

这会翻译日期,但ja-JP会将日期“2019年1月17日”翻译为“2019/01/17”,但我需要类似“2019年1月17日”的名称。对于所有其他语言环境,这可以正确翻译日期。

请让我们知道是否还有其他方法可以做到这一点。

最佳答案

这为我工作:

public static void main(String[] args) throws IOException {
    final DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL, Locale.JAPAN);
    Date today = new Date();
    System.out.printf("%s%n", dateFormat.format(today));
}

MEDIUM完全按照你说的去做

UPD:或使用迈克尔·甘特曼(Michael Gantman)建议的较新的ZonedDataTime:
public static void main(String[] args) throws IOException {
    ZonedDateTime zoned = ZonedDateTime.now();
    DateTimeFormatter pattern = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL).withLocale(Locale.JAPAN);
    System.out.println(zoned.format(pattern));
}

关于java - 获取Java中特定于语言环境的日期/时间格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54230982/

10-14 12:05