Changing Gregorian Month and Days names to Islamic? NSDate

nscalendar, nsdate, nsdateformatter, objective-c

Solution

I think this would help

NSCalendar * hijri = [[NSCalendar alloc] initWithCalendarIdentifier:NSIslamicCalendar];

NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterLongStyle];
[formatter setTimeStyle:NSDateFormatterNoStyle];
[formatter setCalendar:hijri];

NSLog(@"hijri: %@", [formatter stringFromDate:[NSDate date]]);
[formatter release];

Problem

I'm trying to display the Islamic current `day` name , `month` name. I used NSLocale to set the region to `ar_SA`, however it's just translating the day and month names from English to Arabic. Output I'm getting in Arabic: `١٢ الأحد ، اكتوبر ، ٢٠١٢` which in English is `Sunday, October 28, 2012` Output I want: `Al-Ahad, Dul-Hijja 12, 1433` Snippet: ``` NSDateFormatter *islamicFormatter = [[NSDateFormatter alloc]init]; [islamicFormatter setDateStyle:NSDateFormatterFullStyle]; [islamicFormatter setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"ar_SA"]]; NSString *islamicDateString = [islamicFormatter stringFromDate:islamicDate]; NSLog(@"%@",islamicDateString); ``` I hope it's clear for you guys.

Original source

Related problems