从UIDatePicker中选择正确的日期格式

时间:2014-09-24 07:03:11

标签: ios date

我创建了一个应用来获取一个人的出生日期。我使用UITextBox从UIDatePicker获取用户的出生日期(当用户点击UITextBox时显示)。当我选择日期,月份和年份,然后单击设置时,日期显示在UITextBox中,但日期格式不正确。当我设置日期02/16/1993(MM / DD / YYYY)然后我在UITextBox中得到了02/47/1993。添加了日期(31 + 16 = 47),但我想显示02/16/1993。我的代码是:

NSArray *allViews=[dateSheet subviews];
    for (UIView *subView in allViews)
    {
        if ([subView isKindOfClass:[UIDatePicker class]])
        {
            self.birthdate=[(UIDatePicker *)subView date];
        }
    }
    NSDateFormatter *dateFormatter= [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"MM/dd/yyyy"];
    [txtDOB setText:[dateFormatter stringFromDate:self.birthdate]];

如何获得正确的格式?

2 个答案:

答案 0 :(得分:0)

显然,问题在于显示为一年中的一天'而不是一个月的那一天'。 这可能是因为你使用了DD' DD'而不是' d'用于计算日..

请参阅:http://www.unicode.org/reports/tr35/tr35-19.html#Date_Format_Patterns

你可以在' setDateFormat'中解决这个问题。串。 否则我会建议你使用NSDateComponents,它不仅会给出准确的结果,而且误差很小......

答案 1 :(得分:0)

你可以试试这个:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
    [dateFormatter setDateFormat:@"MM/dd/yyyy"];
    NSString *strDate = [dateFormat stringFromDate:datePicker.date];
    txtDOB.text = strDate;

但我认为设置日期选择器有问题。您应该在.h文件中声明日期选择器。