7
HijrahDate hd=HijrahChronology.INSTANCE.date(LocalDate.of(2014,11, 25));

如果我们有HijrahDateInstance ,它应该有一个UmalquraCalendar API显示月份名称的方法:

我使用groovy API检查此实例的属性:

['era':AH, 
'class':class java.time.chrono.HijrahDate, 
'prolepticMonth':17233,
 'eraValue':1,
 'dayOfWeek':2,
 'leapYear':false, 
'chronology':Hijrah-umalqura, 
'dayOfYear':32] 

但是,我们找不到必须是以下列表项之一的月份名称:

  1. Muḥarram(محرم 意思是“禁止的”),之所以这样称呼,是因为本月禁止战斗(haram)。穆哈拉姆包括阿修罗日。
  2. Ṣafar (صفر 意为“虚空”),之所以如此命名,是因为异教徒的阿拉伯房屋每年这个时候都是空的,而他们的居住者正在收集食物。
  3. Rabīʿ I (Rabīʿ al-Awwal, ربيع الأوّل) 意为“第一个春天”。

  4. Rabīʿ II (Rabīʿ ath-Thānī ربيع الثاني 或 Rabīʿ al-Ākhir ربيع الآخ

..................................... 等等

因此,由于没有保存月份名称的属性,因此需要一种方法来检索此信息?

这是什么方法?

4

3 回答 3

7

日期不包含有关月份或日期名称的信息。为此,您需要一个格式化程序:

System.out.println(DateTimeFormatter.ofPattern("MMMM").format(hd));

打印Safar

于 2014-11-25T08:58:16.117 回答
4

由于主要语言UmalQura是阿拉伯语,因此使用的开发人员和程序员 UmalQuraCalender希望以阿拉伯语显示月份。因此,我们基于@assylias 的回答,我们可以添加Locale对象来打印صفر而不是Safar

System.out.println(DateTimeFormatter.ofPattern("MMMM").format(hd,new Locale("ar")));
于 2014-11-26T05:09:04.200 回答
1
public String getIslamicDate(){
    return  DateTimeFormatter.ofPattern("MMMM",new Locale("ar")).format(HijrahDate.now());
}

我认为这应该可以正常工作并以阿拉伯语返回月份

于 2018-10-17T19:27:38.617 回答