NSDate格式化程序与 NSIslamicCalendar 无法正常工作



我正在使用NSDateFormatter将格里奥戈里日期转换为回历日期,并使用setCalendar方法将NSIslamicCalendar设置为格式化程序日历 问题是结果回历字符串总是比实际日期多一天例如,如果我们使用以下代码将今天的 greg 日期转换为回历,输出将是18 Rabi' || 1435这是错误的,因为今天是17 Rabi' || 1435, 我看到了很多关于这些问题的帖子,比如这些,我在这些帖子中尝试了所有可能的解决方案,但没有意思!! 下面是 hijriDateFormatter 属性的获取者:

-(NSDateFormatter*)hijriDateFormatter{
if (!_hijriDateFormatter) {
    _hijriDateFormatter=[[NSDateFormatter alloc] init];
}
[_hijriDateFormatter setTimeZone:[NSTimeZone systemTimeZone]]; // i trie aslo to set TimeZone as localTimeZone
 _hijriDateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[_hijriDateFormatter setDateFormat:@"dd MMMM, yyyy"];
[_hijriDateFormatter setCalendar:self.hijriCalendar];
return _hijriDateFormatter;

}

也是该物业hijriCalendar的吸气者:

-(NSCalendar*)hijriCalendar{
if (!_hijriCalendar) {
    _hijriCalendar=[[NSCalendar alloc] initWithCalendarIdentifier:NSIslamicCalendar];
}
return _hijriCalendar;
}

在这里,我将转换后的HijriDate作为字符串:

NSString *convertedHijriDate=[self.hijriDateFormatter stringFromDate:GregorianDate];

鉴于GregorianDate是今天的日期,其值为:2014-02-17 09:48:47 +0000请帮助我解决这些问题,提前感谢

伊斯兰日历很困难。显然,在可接受的使用中有不同的数学公式,导致不同的结果。此外,正确的日历是基于对月球的实际观测,根据您的位置和天气给出不同的结果(新月在某一天是否可见取决于天气;在晴朗的日子里,新月可能几乎看不见,而在阴天则看不到)。总之,可以有不同的数字都是"正确的"。

我建议尽可能多地阅读有关该主题的信息,然后弄清楚要显示的答案是什么。

最新更新