日期格式在 IOS 中不起作用
Date Format not working in IOS
我有 select 日期的日期选择器并将其显示在标签上。我正在尝试 yyyy-MM-dd
的格式。但是当我 select 任何日期时,标签不显示我从日期选择器 select 编辑的日期。
如何显示这种格式 yyyy-MM-dd
?
这是我的代码:
datepicker=[[UIDatePicker alloc]init];
datepicker.datePickerMode=UIDatePickerModeDate;
datepicker.backgroundColor = [UIColor grayColor];
[datepicker setValue:[UIColor whiteColor] forKey:@"textColor"];
UIToolbar *toolBar=[[UIToolbar alloc]initWithFrame:CGRectMake(0, self.view.frame.size.height - 216 - 44, self.view.frame.size.width, 44)];
[toolBar setTintColor:[UIColor blackColor]];
UIBarButtonItem *doneBtn=[[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(ShowSelectedDate)];
UIBarButtonItem *space=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
[toolBar setItems:[NSArray arrayWithObjects:doneBtn,space,nil]];
[_DOB setInputView: datepicker];
_DOB.inputAccessoryView =toolBar;
-(void)ShowSelectedDate {
NSDateFormatter *fromatter=[[NSDateFormatter alloc]init];
[fromatter setDateFormat:@"yyyy-MM-dd"];
self.DOB.text=[NSString stringWithFormat:@"%@",[fromatter stringFromDate:datepicker.date]];
[_DOB resignFirstResponder];
}
我的日期选择器如下所示:
您可以实现一个操作方法来拦截日期选择器的 UIControlEventValueChanged
。通常这被放置在管理日期选择器的视图控制器 class 中:
-(IBAction)dateChanged:(UIDatePicker * )inPicker {
// applying inPicker.date to your label
}
将操作方法添加到您的选择器中,如下所示:
datepicker=[[UIDatePicker alloc]init];
datepicker.datePickerMode=UIDatePickerModeDate;
[datepicker addTarget:self action:@selector(dateChanged:) forControlEvents:UIControlEventValueChanged];
其中self
是视图控制器,它实现了dateChanged:
。您也可以为此使用 ShowSelectedDate
方法:
[datepicker addTarget:self action:@selector(ShowSelectedDate) forControlEvents:UIControlEventValueChanged];
注意:由于 ShowSelectedDate
不带参数,因此 @selector
中末尾没有冒号。
您还可以将日期选择器作为参数传递给 ShowSelectedDate
:
-(void)ShowSelectedDate:(UIDatePicker * )datepicker {
NSDateFormatter *fromatter=[[NSDateFormatter alloc]init];
[fromatter setDateFormat:@"yyyy-MM-dd"];
self.DOB.text=[NSString stringWithFormat:@"%@",[fromatter stringFromDate:datepicker.date]];
[_DOB resignFirstResponder];
}
那么您应该应用以下操作:
[datepicker addTarget:self action:@selector(ShowSelectedDate:) forControlEvents:UIControlEventValueChanged];
注意额外的冒号,因为该方法现在有一个参数。
我有 select 日期的日期选择器并将其显示在标签上。我正在尝试 yyyy-MM-dd
的格式。但是当我 select 任何日期时,标签不显示我从日期选择器 select 编辑的日期。
如何显示这种格式 yyyy-MM-dd
?
这是我的代码:
datepicker=[[UIDatePicker alloc]init];
datepicker.datePickerMode=UIDatePickerModeDate;
datepicker.backgroundColor = [UIColor grayColor];
[datepicker setValue:[UIColor whiteColor] forKey:@"textColor"];
UIToolbar *toolBar=[[UIToolbar alloc]initWithFrame:CGRectMake(0, self.view.frame.size.height - 216 - 44, self.view.frame.size.width, 44)];
[toolBar setTintColor:[UIColor blackColor]];
UIBarButtonItem *doneBtn=[[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(ShowSelectedDate)];
UIBarButtonItem *space=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
[toolBar setItems:[NSArray arrayWithObjects:doneBtn,space,nil]];
[_DOB setInputView: datepicker];
_DOB.inputAccessoryView =toolBar;
-(void)ShowSelectedDate {
NSDateFormatter *fromatter=[[NSDateFormatter alloc]init];
[fromatter setDateFormat:@"yyyy-MM-dd"];
self.DOB.text=[NSString stringWithFormat:@"%@",[fromatter stringFromDate:datepicker.date]];
[_DOB resignFirstResponder];
}
我的日期选择器如下所示:
您可以实现一个操作方法来拦截日期选择器的 UIControlEventValueChanged
。通常这被放置在管理日期选择器的视图控制器 class 中:
-(IBAction)dateChanged:(UIDatePicker * )inPicker {
// applying inPicker.date to your label
}
将操作方法添加到您的选择器中,如下所示:
datepicker=[[UIDatePicker alloc]init];
datepicker.datePickerMode=UIDatePickerModeDate;
[datepicker addTarget:self action:@selector(dateChanged:) forControlEvents:UIControlEventValueChanged];
其中self
是视图控制器,它实现了dateChanged:
。您也可以为此使用 ShowSelectedDate
方法:
[datepicker addTarget:self action:@selector(ShowSelectedDate) forControlEvents:UIControlEventValueChanged];
注意:由于 ShowSelectedDate
不带参数,因此 @selector
中末尾没有冒号。
您还可以将日期选择器作为参数传递给 ShowSelectedDate
:
-(void)ShowSelectedDate:(UIDatePicker * )datepicker {
NSDateFormatter *fromatter=[[NSDateFormatter alloc]init];
[fromatter setDateFormat:@"yyyy-MM-dd"];
self.DOB.text=[NSString stringWithFormat:@"%@",[fromatter stringFromDate:datepicker.date]];
[_DOB resignFirstResponder];
}
那么您应该应用以下操作:
[datepicker addTarget:self action:@selector(ShowSelectedDate:) forControlEvents:UIControlEventValueChanged];
注意额外的冒号,因为该方法现在有一个参数。