2017-03-08 66 views
1

我無法在目標c中獲得Hijri日期格式。我已經使用了一個UIDatePicker,我在其中添加了以下代碼以顯示日期爲hijri。無法從iOS目標C中的UIDatePicker獲取Hijri日期?

self.datepicker.datePickerMode = UIDatePickerModeDate; 
self.datepicker.calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierIslamic]; 

我正在選擇器如下enter image description here

但是,當我從UIdatePikcer獲取日期我得到日期2017年8月3日,但沒有回曆日期。

我正在使用下面的代碼將日期轉換爲字符串。

-(NSString *)convertStringFromDate:(NSDate *)date 
{ 

    NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 

    [dateFormatter setDateFormat:@"dd/MM/yyyy"]; 

    NSLog(@"date is %@",date); 
    NSString *dateString = [dateFormatter stringFromDate:date]; 
    return dateString; 
} 

請告訴我如何解決這個問題?

回答

4

A NSDate對象是持有日期但不知道如何呈現它的對象將呈現給用戶。看到它存儲日期的通用方式,它不使用AM/PM,24小時或公曆。

當您打印/記錄一個NSDate對象時,它將使用系統日曆來表示日期。

要格式化NSDate,您可以使用NSDateFormatter將日期轉換爲用戶可以理解的內容。但是你必須告訴NSDateFormatter如何格式化日期。

您忘記的部分是告訴NSDateFormatter使用NSCalendarIdentifierIslamic日曆。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init] ; 
dateFormatter.calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierIslamic]; 
[dateFormatter setDateFormat:@"dd/MM/yyyy"]; 


NSString *dateString = [dateFormatter stringFromDate:[NSDate date]]; 
NSLog(@"date is %@",dateString); 

這給了我date is 10/06/1438爲今天的日期(2017年3月8日)