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]
但是,我们找不到必须是以下列表项之一的月份名称:
......
- Muḥarram(محرم意思是"禁止"),之所以这样称呼,是因为战斗是 禁止(圣地)在这个月。穆哈拉姆包括 阿修罗。
- Ṣafar(صفر的意思是"虚空"),据说是这样命名的,因为 每年的这个时候,异教阿拉伯房屋都是空的,而他们的居住者 收集食物。
- 拉比
拉比一世(Rabīʿ al-Awwal,ربيع الأوّل)的意思是"The 第一春"。
二世(拉比阿特-塔尼 ربيع الثاني 或 拉比阿基尔 ربيع الآخ
............... ............依此类推
因此,由于没有属性保存月份的名称,所以它被排除为有一个方法检索此信息?
这是什么方法?
日期不包含有关月份或日期名称的信息。要获得它,您需要一个格式化程序:
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());
}
我认为这应该可以正常工作,并以阿拉伯语返回月份