如何使用设备区域设置语言格式化日期和时间?

How to get date and time formatted using the device locale language?

我正在尝试使用 Date() 获取日期和时间,并将其显示在 TextView 中。 是否可以使用设备区域设置对其进行格式化?

例如:

阿拉伯语区域设置 خميس 215

土耳其语言环境设备 Çar 214

英语语言环境设备周三214

如果要将 java.util.Date 转换为字符串,可以使用 SimpleDateFormat class。此 class 的第二个构造函数采用 Locale 类型的参数。使用 Locale.getDefault() 您可以获得设备的默认区域设置,如果未设置或找到它,它将提供 en_Us.

的区域设置

这是一个小示例代码:

public static void main(String [] args){
    DateFormat df = new SimpleDateFormat("yyyy/MMM/dd EE", Locale.getDefault());
    Date today = Calendar.getInstance().getTime();
    String reportDate = df.format(today);
    System.out.println(reportDate);
}

您还可以设置 Local exclipcity,例如 Locale.CHINESE 或者您可以循环访问当前设备上可用的本地数组(请参阅 Locale.getAvailableLocales())。

希望能帮到你!

您还可以签出 DateUtils class, which is available since API 3. It provides a set of convenient methods to format date time, localized by value set in configuration.locale and returned by resources.getConfiguration(),回退到 Locale.getDefault()