SimpleDateFormat 和基于区域设置的格式字符串

2022-08-31 11:00:06

我正在尝试根据给定的区域设置以不同的方式在Java中格式化日期。例如,我希望英语用户看到“Nov 1, 2009”(格式为“MMM d, yyyy”),挪威用户看到“1.11 月。2009“ (”d. MMM.yyyy”)。

如果我将区域设置添加到 SimpleDateFormat 构造函数,则月份部分工作正常,但其余的呢?

我希望我可以将与语言环境配对的格式字符串添加到SimpleDateFormat中,但我找不到任何方法来做到这一点。是否可以,或者我是否需要让我的代码检查区域设置并添加相应的格式字符串?


答案 1

SimpleDateFormat dateFormat = new SimpleDateFormat("EEEE dd MMM yyyy", Locale.ENGLISH);
String formatted = dateFormat.format(the_date_you_want_here);

答案 2

使用 DateFormat.getDateInstance(int style, Locale locale),而不是使用 创建自己的模式。SimpleDateFormat