我的应用中有一个日期选择器。手机设置为孟加拉国本地设置。当我从datepicker中选择日期时总是返回孟加拉语中的日期。它以本地格式返回日期。
喜欢,它会返回 06/11/014
但我希望 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]);
输出为空。
答案 0 :(得分:0)
当你说...时,你的假设是不正确的。
当我从datepicker中选择日期时,总是以孟加拉语返回日期。它以本地格式返回日期。
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;
}