8

我正在尝试显示伊斯兰当前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);

我希望你们清楚。

4

2 回答 2

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];
于 2012-10-28T15:19:40.233 回答
3

我知道这篇文章已经很老了,但我认为有必要添加如下 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
于 2017-03-15T03:26:34.487 回答