【问题标题】:Showing a particular date in UIDatePicker in UIDatePickerModeDate on the iPhone在 iPhone 上的 UIDatePickerModeDate 中的 UIDatePicker 中显示特定日期
【发布时间】:2013-02-27 18:30:56
【问题描述】:

我有一个包含字符串2013-02-28NSString 对象。默认情况下,UIDatepicker 显示当前日期,但我想显示 NSString 对象中的任何日期。

我正在将NSString 对象转换为NSDate,但我不知道如何在UIDatePickerModeDate 中的UIDatePicker 上设置该日期。我怎么能这样做?我尝试了setDate: 方法,但它不起作用。

【问题讨论】:

  • setDate: 正是您在选择器上更改日期的方式。您确定要创建有效的 NSDate 实例吗?给我们看一些代码。

标签: ios nsdate nsdateformatter uidatepicker


【解决方案1】:

这应该适合你。在将其发送到 NSDatePicker 之前,您可能需要将 NSString 转换为 NSDate。请记住,您可能需要设置 NSDateFormater 的时区以避免出现极端情况。

  //Given self.datepicker is your UIDatePicker 

  NSString *dateString = @"2013-03-28";
  NSTimeZone *timezone = [NSTimeZone systemTimeZone];

  NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  [dateFormatter setTimeZone:timeZone];
  [dateFormatter setDateFormat:@"yyyy-MM-dd"];

  NSDate *date = [dateFormatterGMTAware dateFromString:dateString];
  self.datePicker.date = date;

【讨论】:

    【解决方案2】:
    -(IBAction)btnDateClicked:(id)sender{
    
        theDatePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0.0, 44.0, self.view.frame.size.width, 0.0)];
        theDatePicker.datePickerMode = UIDatePickerModeDate;
        theDatePicker.minimumDate=[NSDate date];
    
        // ************To keep the selected date**********
    
        NSString *dateString = [NSString stringWithFormat:@"%@",btnDate.titleLabel.text ];
        NSTimeZone *timezone = [NSTimeZone systemTimeZone];
    
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setTimeZone:timezone];
        [dateFormatter setDateFormat:@"yyyy-MM-dd"];
    
        NSDate *date = [dateFormatter dateFromString:dateString];
        theDatePicker.date = date;
    }
    

    【讨论】:

      猜你喜欢
      • 2021-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多