我有一个GUI,该GUI有两个组合框和一个文本框,用于输入用户的Hijiri生日。我想将那个Hijiri日期转换为一个公历日期...每个解决方案我发现要么复杂,要么不起作用..我什至检查了Joda-Time-API-伊斯兰日历(HijrahChronology),它没有任何转换方法 !!

最佳答案

tl; dr

LocalDate.from(                     // Convert from Hijrah chronology to ISO 8601 chronology.
    HijrahDate.of( 1400 , 2 , 19 )  // Instantiate a recent birthdate using Islamic calendar.
).toString()                        // Generate text representing this ISO date.



  1980-01-08


细节

java.time.chrono包提供了Hijrah chronology以及其他年代。

虽然我对Islamic calendar一无所知,但在我看来,您可以轻松地在ISO 8601 chronology与希杰拉年表之间进行转换。

实例化Hijrah年表。

// Instantiate a recent birth date using Islamic calendar.
HijrahDate hd = HijrahDate.of( 1400 , 2 , 19 );
System.out.println( "hd.toString(): " + hd );



  hd.toString():Hijrah-umalqura AH 1400-02-19


转换为ISO 8601年表。

// Convert from Hijrah chronology to ISO 8601 chronology.
LocalDate ld = LocalDate.from( hd );
System.out.println( "ld.toString(): " + ld );



  ld.toString():1980-01-08

10-06 00:38