将日期转换为孟加拉语的英文格式

时间:2014-12-03 10:12:15

标签: ios nsstring ios8 nslocalizedstring nsdatepicker

我的应用中有一个日期选择器。手机设置为孟加拉国本地设置。当我从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]);

输出为空。

1 个答案:

答案 0 :(得分:0)

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

  

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

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

当你这样做时......

NSLog(@"%@", someDate);

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

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

  1. UIDatePicker获取约会。
  2. 将该日期渲染为孟加拉语中的UITextField。 (或标签,或文字视图或其他)
  3. 尝试阅读文本并将其存储到日期中。
  4. 尝试将日期“转换”为英文字符串。
  5. 您应该做的只是保存日期选择器的日期。

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

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

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

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

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

    - (void)datePickerChoseADate
    {
        self.date = self.datePicker.date;
    }