获取 java.time.chrono.HijrahDate 实例的月份名称


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

如果我们有 HijrahDate 实例 ,它应该在 UmalquraCalendar API 中有一个显示月份名称的方法:

我使用 Groovyy 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(محرم意思是"禁止"),之所以这样称呼,是因为战斗是 禁止(圣地)在这个月。穆哈拉姆包括 阿修罗。
  2. Ṣafar(صفر的意思是"虚空"),据说是这样命名的,因为 每年的这个时候,异教阿拉伯房屋都是空的,而他们的居住者 收集食物。
  3. 拉比一世(Rabīʿ al-Awwal,ربيع الأوّل)的意思是"The 第一春"。

  4. 拉比
  5. 二世(拉比阿特-塔尼 ربيع الثاني 或 拉比阿基尔 ربيع الآخ

......

............... ............依此类推

因此,由于没有属性保存月份的名称,所以它被排除为有一个方法检索此信息?

这是什么方法?

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

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

打印Safar .

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

System.out.println(DateTimeFormatter.ofPattern("MMMM").format(hd,new Locale("ar")));
public String getIslamicDate(){
    return  DateTimeFormatter.ofPattern("MMMM",new Locale("ar")).format(HijrahDate.now());
}

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

最新更新