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[フォーマットリリース]に設定します。またはformat=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 に答える