将格里高利月和天的名字改为伊斯兰教?的NSDate

时间:2012-10-28 14:59:13

标签: objective-c nsdate nsdateformatter nscalendar

我正在尝试显示伊斯兰当前day名称,month名称。我使用NSLocale将区域设置为ar_SA,但它只是将日期和月份名称从英语翻译成阿拉伯语。

输出我用阿拉伯语:

١٢ الأحد ، اكتوبر ، ٢٠١٢,英文为Sunday, October 28, 2012

我想要的输出:

Al-Ahad, Dul-Hijja 12, 1433

段:

NSDateFormatter *islamicFormatter = [[NSDateFormatter alloc]init];
[islamicFormatter setDateStyle:NSDateFormatterFullStyle];
[islamicFormatter setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"ar_SA"]];
NSString *islamicDateString = [islamicFormatter stringFromDate:islamicDate];
NSLog(@"%@",islamicDateString);

我希望你们能清楚。

2 个答案:

答案 0 :(得分:10)

我认为这会有所帮助

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

答案 1 :(得分:1)

我知道这篇文章很老但我认为有必要添加Swift 3代码,如下所示。

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