0

如何将日期格式更改为yy/mm/dd

这是我到目前为止所拥有的:

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
  if (textField == _celebration)
  {
      UIDatePicker *datePicker = [[UIDatePicker alloc]init];
      [datePicker setDate:[NSDate date]];
      [datePicker addTarget:self action:@selector(updateTextField:) forControlEvents:UIControlEventValueChanged];
      [self.celebration setInputView:datePicker];
  }
}

- (void)updateTextField:(id)sender
{
  UIDatePicker *picker = (UIDatePicker*)self.celebration.inputView;
  self.celebration.text = [NSString stringWithFormat:@"%@",picker.date];
}
4

1 回答 1

1

制作这样的格式化程序

NSDateFormatter* format = [[NSDateFormatter alloc]init];
[format setDateFormat:@"YY/MM/dd"];

像这样从 NSDate 获取格式化的字符串

NSString* testDate = [format stringFromDate:[NSDate date]];

从这样的字符串中获取 NSDate 。

NSDate* reformDate = [format dateFromString:testDate];

如果不在 ARC 中,则释放,否则设置为 nil [格式释放];或格式=无;

你可以修改你的函数看起来像这样。这会将格式化的日期字符串设置为 UITextField 的文本。

- (void)updateTextField:(id)sender
{
    UIDatePicker *picker = (UIDatePicker*)self.celebration.inputView;

    NSDateFormatter* format = [[NSDateFormatter alloc]init];
    [format setDateFormat:@"YY/MM/dd"];

    NSString* formattedDate = [format stringFromDate:picker.date];

    self.celebration.text = formattedDate;

    format = nil;
}

话虽如此,UIDatePicker 本身不支持这样的格式。您可以在此处引用该类。 UIDatePicker 类参考

如果您真的为 datePicker 设置了这种格式,您可能必须构建一个自定义格式。但是,我不鼓励这样做,因为内置的 UIDatepicker 会自动考虑用户的区域设置和语言,而您的格式会将其锁定为您的首选格式(这对于您的用户而言并不总是正确的,具体取决于他们在世界上的位置)。

于 2013-02-19T20:47:42.307 回答