iOS:UIDatePicker返回阿拉伯语日期

iOS:UIDatePicker返回阿拉伯语日期,ios,objective-c,datepicker,localization,arabic,Ios,Objective C,Datepicker,Localization,Arabic,我的手机语言是阿拉伯语,但我只想选择英语的日期。我使用了日历和日期选择器的locale属性,但都不起作用。我只想用英语约会。我的代码如下: UIDatePicker *datePicker = [[UIDatePicker alloc]init]; [datePicker setFrame:CGRectMake(0, 100, self.view.frame.size.width, 216.0)]; datePicker.datePickerMode = UIDatePickerModeDa

我的手机语言是阿拉伯语,但我只想选择英语的日期。我使用了日历和日期选择器的locale属性,但都不起作用。我只想用英语约会。我的代码如下:

 UIDatePicker *datePicker  = [[UIDatePicker alloc]init];
[datePicker setFrame:CGRectMake(0, 100, self.view.frame.size.width, 216.0)];
datePicker.datePickerMode = UIDatePickerModeDate;
[datePicker setLocale: [NSLocale localeWithLocaleIdentifier:@"en_US"]];
[datePicker addTarget:self action:@selector(updateDateField:) forControlEvents:UIControlEventValueChanged];
 NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
[datePicker setCalendar:gregorianCalendar];
[self.view addSubview:datePicker];


-(void)updateDateField : (UIDatePicker*)datePicker{
NSLog(@"____ %@",datePicker.date);}

输出为:٢٠١١١٠١:١١+0000,但我只需要英文输出,这样我就可以在服务器上存储所选日期

尝试使用NSDateFormatter并将区域设置为它,然后从dateController获取stringFromDate和您已经拥有的日期。

尝试使用NSDateFormatter并将区域设置为它,然后从dateController中获取stringFromDate和您已有的日期。

为此,您需要使用日期格式化程序。我现在不知道您需要发送到服务器的格式。这是苹果公司的一个例子:

let RFC3339DateFormatter = DateFormatter()
RFC3339DateFormatter.locale = Locale(localeIdentifier: "en_US_POSIX")
RFC3339DateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
RFC3339DateFormatter.timeZone = TimeZone(forSecondsFromGMT: 0)

let date = Date()
let string = RFC3339DateFormatter.stringFromDate(date)

为此,您需要使用日期格式化程序。我现在不知道您需要发送到服务器的格式。这是苹果公司的一个例子:

let RFC3339DateFormatter = DateFormatter()
RFC3339DateFormatter.locale = Locale(localeIdentifier: "en_US_POSIX")
RFC3339DateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
RFC3339DateFormatter.timeZone = TimeZone(forSecondsFromGMT: 0)

let date = Date()
let string = RFC3339DateFormatter.stringFromDate(date)
NSLog(@“\\\\\\%@”,datePicker.date)
默认情况下将调用
datePicker.date.description
以格式化输出字符串。默认的
NSDate
描述将使用系统默认的语言环境,这就是为什么您会得到阿拉伯语输出

-(NSString*)description
NSObject
的方法,当
NSObject
的子类“转换为字符串”时调用该方法
NSDate
本身不包含任何区域设置信息。但是
NSDate
的描述方法将创建一个格式化程序并使用系统的区域设置

如果您希望它位于UI中的某个位置,则不应使用默认的描述方法,您必须创建自己的
DateFormatter
,以正确的区域设置和所需的格式格式化输出

或者,您可以对
NSDate
进行扩展,并使用自定义的
DateFormatter
NSLog(@“\uuuuuuuuuu%”,datePicker.date)
默认情况下将调用
datePicker.date.description
,以格式化输出字符串。默认的
NSDate
描述将使用系统默认的语言环境,这就是为什么您会得到阿拉伯语输出

-(NSString*)description
NSObject
的方法,当
NSObject
的子类“转换为字符串”时调用该方法
NSDate
本身不包含任何区域设置信息。但是
NSDate
的描述方法将创建一个格式化程序并使用系统的区域设置

如果您希望它位于UI中的某个位置,则不应使用默认的描述方法,您必须创建自己的
DateFormatter
,以正确的区域设置和所需的格式格式化输出


或者,您可以扩展到
NSDate
并使用自定义的
日期格式化程序覆盖描述功能

无需为此设置日期选择器的本地和日历。注释这两行并检查一次。无需为此设置日期选择器的本地和日历。注释这两行并检查一次。