我正在处理一个应用程序,我需要返回阿拉伯语/法语月份名称和日期名称,具体取决于我使用的本地。 例如,如果本地是“Ar”,我需要月份为2月的فبراير。如果本地是“Fr”月份名称应该是Février。 我目前正在解决它并从不同的.properties文件中读取月和日名称。 现在,我的问题是:根据给定的本地,有没有办法以不同语言返回月份和日期名称?
非常感谢您的帮助:)
答案 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)
getMonths
和getWeekdays
方法
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;
}