Get Month Name of java.time.chrono.HijrahDate inst

2019-02-18 02:09发布

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

If we have HijrahDate Instance , it is expected to have a method in UmalquraCalendar API that shows the name of month :

i inspect properties of this instance using groovy API :

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

However we don't find the month name which must be one of the following list items :

  1. Muḥarram (محرم meaning "forbidden"), so called because battle was forbidden (haram) during this month. Muharram includes the Day of Ashura.
  2. Ṣafar (صفر meaning "void"), supposedly named thus because pagan Arab houses were empty this time of year while their occupants gathered food.
  3. Rabīʿ I (Rabīʿ al-Awwal, ربيع الأوّل) meaning "the first spring".

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

..................... ............ so on SEE

Thus , since there is no attribute save month's name , it is expwcted to have a method retrieve this info ?

What's this method?

3条回答
成全新的幸福
2楼-- · 2019-02-18 02:30

The date does not contain information about the names of the months or days. To get that you need a formatter:

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

prints Safar.

查看更多
叼着烟拽天下
3楼-- · 2019-02-18 02:38
public String getIslamicDate(){
    return  DateTimeFormatter.ofPattern("MMMM",new Locale("ar")).format(HijrahDate.now());
}

I think this should work just fine and return the month in arabic language

查看更多
Bombasti
4楼-- · 2019-02-18 02:46

Since the main language of UmalQura is the arabic langugage, Developers & programmers who uses UmalQuraCalender want to display the month in arabic. Thus , we base on @assylias answer we can add the Locale object to print صفر instead of Safar

System.out.println(DateTimeFormatter.ofPattern("MMMM").format(hd,new Locale("ar")));
查看更多
登录 后发表回答