Changing Gregorian Month and Days names to Islamic? NSDate

ⅰ亾dé卋堺 提交于 2019-11-29 14:25:24

问题


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.


回答1:


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];



回答2:


I know this post is quite old but I think it is necessary to add Swift 3 code as below for other reference.

let hijri = Calendar(identifier: .islamic)

let formatter = DateFormatter()
formatter.calendar = hijri
formatter.dateFormat = "d MMMM yyyy"

let today = Date()
let dateString = formatter.string(from: today)

print(dateString)

// the output: 16 Jamada II 1438


来源:https://stackoverflow.com/questions/13109905/changing-gregorian-month-and-days-names-to-islamic-nsdate

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!