Я конвертирую грегорианскую дату в дату по хиджре, используя NSDateFormatter
с NSIslamicCalendar
, установленным в качестве календаря форматирования, используя метод setCalendar
, проблема в том, что результат строки хиджры всегда на один день больше, чем фактическая дата, например, если мы используем приведенный ниже код для преобразования сегодняшнего грега Дата Хиджры выход будет 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
, пожалуйста, помогите мне в этом вопросе, заранее спасибо