Joda时间没有得到正确的伊斯兰日期

时间:2015-02-15 03:54:09

标签: android date jodatime

我需要获得3个伊斯兰日期,我正在使用Joda Time来转换日期。

日期1:

DateTime todayIso = new DateTime(2014, 4, 20,0,0,0);
    DateTimeZone tz = DateTimeZone.forID("Asia/Tehran");
    DateTime dtIslamic = 
            todayIso.withChronology(
                    IslamicChronology.getInstance(
                            tz, 
                            IslamicChronology.LEAP_YEAR_15_BASED));
    Log.d("DATE !", dtIslamic.getYear()+" "+ dtIslamic.getMonthOfYear()+" "+ dtIslamic.getDayOfMonth());

结果是“1435 6 19”这是错的,应该是“1435 6 20”。

DATE2:

DateTime todayIso = new DateTime(2015, 2, 15,0,0,0);
    DateTimeZone tz = DateTimeZone.forID("Asia/Tehran");
    DateTime dtIslamic = 
            todayIso.withChronology(
                    IslamicChronology.getInstance(
                            tz, 
                            IslamicChronology.LEAP_YEAR_15_BASED));
    Log.d("DATE !", dtIslamic.getYear()+" "+ dtIslamic.getMonthOfYear()+" "+ dtIslamic.getDayOfMonth());

结果是“1436 1 25”这是真的。

日期3:

DateTime todayIso = new DateTime(2015, 12, 2,0,0,0);
    DateTimeZone tz = DateTimeZone.forID("Asia/Tehran");
    DateTime dtIslamic = 
            todayIso.withChronology(
                    IslamicChronology.getInstance(
                            tz, 
                            IslamicChronology.LEAP_YEAR_15_BASED));
    Log.d("DATE !", dtIslamic.getYear()+" "+ dtIslamic.getMonthOfYear()+" "+ dtIslamic.getDayOfMonth());

结果是“1437 2 19”这是错的,应该是“1437 2 20”。

第1437年伊斯兰日期的第一个月有29天,但也显示第30天。

0 个答案:

没有答案