我需要从Date对象中返回阿拉伯语/法语月份名称

时间:2010-12-19 08:57:24

标签: java spring internationalization

我正在处理一个应用程序,我需要返回阿拉伯语/法语月份名称和日期名称,具体取决于我使用的本地。 例如,如果本地是“Ar”,我需要月份为2月的فبراير。如果本地是“Fr”月份名称应该是Février。 我目前正在解决它并从不同的.properties文件中读取月和日名称。 现在,我的问题是:根据给定的本地,有没有办法以不同语言返回月份和日期名称?

非常感谢您的帮助:)

4 个答案:

答案 0 :(得分:7)

你不必解决它。使用SimpleDateFormat(format, locale)。这是代码示例:

    SimpleDateFormat fen = new SimpleDateFormat("dd/MMMM/yyyy", new Locale("en"));
    SimpleDateFormat ffr = new SimpleDateFormat("dd/MMMM/yyyy", new Locale("fr"));

    Date date = new Date();

    System.out.println(fen.format(date));
    System.out.println(ffr.format(date));

答案 1 :(得分:4)

Formatter是最灵活的变体。有方便的方法,比如String.format()和printf()也使用Formatter。

Date d = new Date();

Locale saudi = new Locale("ar","SA");

Formatter formatter = new Formatter(System.out,Locale.FRENCH);
formatter.format("month: %tB\n", d);
System.out.printf(saudi, "month: %tB\n", d);

月:décembre
月:ديسمبر

答案 2 :(得分:2)

使用DateFormatSymbols

getMonthsgetWeekdays方法
String getMonthName(int month, Locale locale) {
    return DateFormatSymbols.getInstance(locale).getMonths()[month];
}

答案 3 :(得分:0)

尝试一种方法:传递format的值,该格式将传递JAN的月份名称参数,例如“ MMM”。

public static String GetMonthInArabic(Context ctx, String month, String format)
{
    String Mon = month;
    try {
        Date convertedDate = new Date();
        convertedDate = new SimpleDateFormat(format, new Locale("eng")).parse(Mon);
        Mon = new SimpleDateFormat(format, new Locale("ar")).format(convertedDate);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return Mon;
}