0

我的应用程序中有一个日期选择器。电话设置为孟加拉国本地设置。当我从 datepicker 中选择一个日期时,总是返回孟加拉语的日期。它以本地格式返回日期。

就像,它返回০৬/১১/২০১৪

但我希望它是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]);

输出为空。

4

1 回答 1

0

当您说...时,您的假设是不正确的

当我从 datepicker 中选择一个日期时,总是返回孟加拉语的日期。它以本地格式返回日期。

UIDatePicker返回一个NSDate对象。NSDate根本没有格式。它没有语言,它纯粹是一个时间点。

当你这样做...

NSLog(@"%@", someDate);

系统会将那个时间点渲染成一个字符串,然后打印出来。它是呈现为包含格式的字符串。

我猜你在做什么是这个......

  1. UIDatePicker.
  2. 将该日期渲染为UITextField孟加拉语。(或标签,或文本视图或其他东西)
  3. 尝试阅读文本并将其存储到日期中。
  4. 然后尝试将日期“转换”为英文字符串。

您应该做的只是保存来自日期选择器的日期。

将其放入财产或其他东西中。

在您上面的代码中,我认为失败的位实际上是第一位......

NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[NSLocale currentLocale]];
NSDate* date = [formatter dateFromString: self.birthDate.text];

因为你没有给它一个格式它会失败。但无论如何,这是错误的做法。

你应该有这样的东西......

- (void)datePickerChoseADate
{
    self.date = self.datePicker.date;
}
于 2014-12-03T10:21:41.830 回答