我创建了一个应用来获取一个人的出生日期。我使用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]];
如何获得正确的格式?
答案 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文件中声明日期选择器。