我的应用程序中有一个日期选择器。电话设置为孟加拉国本地设置。当我从日期选择器中选择日期时,总是返回孟加拉语的日期。它以本地格式返回日期。
就像,它返回 ০৬/১১১/২০১৪
但我希望它是 06/11/2014.
我尝试通过日期格式化程序转换它。这是我尝试过的:
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[NSLocale currentLocale]];
NSDate* date = [formatter dateFromString: self.birthDate.text];
NSDateFormatter *formater = [[NSDateFormatter alloc] init];
[formater setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US"]];
[formater setDateFormat:@"dd/MM/yyyy"];
NSLog(@"%@",[formater stringFromDate:date]);
输出为空。
当你说...
当我从日期选择器中选择日期时,总是返回孟加拉语的日期。它以本地格式返回日期。
UIDatePicker
返回一个NSDate
对象。 NSDate
根本没有格式。它没有语言,它纯粹是一个时间点。
当你这样做时...
NSLog(@"%@", someDate);
系统会将该时间点呈现为字符串,然后打印出来。它是呈现为包含格式的字符串。
我猜你在做什么是这个...
- 从
UIDatePicker
中获取日期。 - 将该日期转换为孟加拉语的
UITextField
。(或标签,或文本视图或其他东西( - 尝试阅读文本并将其存储到日期中。
- 然后尝试将日期"转换"为英文字符串。
您应该做的只是保存来自日期选择器的日期。
把它放进一个属性或其他东西。
在上面的代码中,我认为失败的位实际上是第一位......
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[NSLocale currentLocale]];
NSDate* date = [formatter dateFromString: self.birthDate.text];
因为你没有给它一个格式,它就会失败。但无论如何,这是错误的方法。
你应该有这样的东西...
- (void)datePickerChoseADate
{
self.date = self.datePicker.date;
}