2016-10-22 11 views
1

私はtime4Aを使用して、Islamic Hjiri to Gregorian Dateから変換を行います。私はフォーマットする方法を見つけることができませんヒジュライ日付を "yyyy/mmm/dd"パターンに変換します。ここでヒジリの日付のフォーマット方法

はイスラム暦にグレゴリオから変換するためのコードです:

 CalendarVariant variant = 
        PlainDate.of(2016, 02, 12) 
          .transform(HijriCalendar.class, HijriCalendar.VARIANT_UMALQURA); 

System.out.println(variant.toString()); 

私はのようないくつかのことを必要とし、このAH-1437-05-03[islamique-umalqura]

を得た:私はをフォーマットするにはどうすればよい、そう1437-05-03

Hijri日付

答えて

0

ご迷惑をおかけして申し訳ありません。ただちに返信がない場合は、Time4Jの問題追跡担当者に直接質問することもできます。あなたの質問、二つの点について

a)の抽象インタフェースタイプが、具体的な型を使用しないでください。ここでは、CalendarVariantHijriCalendarに置き換えます。そうしないと、未解決のジェネリックのために生のタイプを処理します。

b)フォーマッタクラスChronoFormatterは、書式設定(および解析)も処理できます。パターン文字列、パターンタイプ、ロケール、年表などの情報だけをフィードする必要があります。また、不変であり、静的最終定数に格納することもできます。例:

HijriCalendar hijriDate = 
    PlainDate.of(2016, 02, 12).transform(
     HijriCalendar.class, 
     HijriCalendar.VARIANT_UMALQURA 
    ); 
ChronoFormatter<HijriCalendar> hf = 
    ChronoFormatter.ofPattern(
     "yyyy-MM-dd", // mmm as given by you would be in minutes in CLDR-standard 
     PatternType.CLDR, 
     Locale.ROOT, 
     HijriCalendar.family() 
    ); 
System.out.println(hf.format(hijriDate)); // 1437-05-03 

この例では、標準数字を使用した数値表現しか必要ないため、ルートロケールを使用しています。もちろん、必要に応じて他の数値システムを使用して書式設定しても構いません(ロケールの問題、またはexplicit format attributeの設定など)。

関連する問題