1

icu4j では、このようにロケールごとに表示月名を取得できます

 SimpleDateFormat formatter
                = new SimpleDateFormat ("yyyy MMM dd");
        String dateString = formatter.format(calendar.getTime());

現在の日付をジェレゴリオ暦の月名で返します。
しかし、icu4jを使用してイスラムの月の月名を取得することは可能ですか?

4

1 に答える 1

1
ULocale locale = new ULocale("@calendar=islamic");
Calendar islamicCalendar = Calendar.getInstance(locale);

// full date
DateFormat df = DateFormat.getDateInstance(DateFormat.FULL, locale);
System.out.println(df.format(islamicCalendar.getTime()));

// date in "yyyy MMM dd" format
SimpleDateFormat df1 = new SimpleDateFormat ("yyyy MMM dd", locale);
System.out.println(df1.format(islamicCalendar.getTime()));

// name of month 
SimpleDateFormat df2 = new SimpleDateFormat (SimpleDateFormat.MONTH, locale);
System.out.println(df2.format(islamicCalendar.getTime()));

// name of weekday
SimpleDateFormat df3 = new SimpleDateFormat (SimpleDateFormat.WEEKDAY, locale);
System.out.println(df3.format(islamicCalendar.getTime()));

出力:

AH 1438 Rabiʻ I 5, Sun

1438 Rab. I 05

Rabiʻ I

Sun

出力を特定のロケールにしたい場合は、そのロケールを の前に置きます@calendar=islamic:

アラビア語ロケールの例:

ULocale locale = new ULocale("ar@calendar=islamic");
...

出力:

الأحد، ٥ ربيع الأول، ١٤٣٨ هـ

١٤٣٨ ربيع الأول ٠٥

ربيع الأول

الأحد
于 2016-12-04T02:51:41.123 に答える