2013-02-27 74 views
1

我有一个NSString对象,其中包含字符串2013-02-28。默认情况下,UIDatepicker显示当前日期,但我想显示NSString对象中的所有日期。在iPhone的UIDatePickerModeDate中显示UIDatePicker中的特定日期

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

+0

'的setDate:'是你到底如何更改日期在选择器。你确定你正在创建一个有效的'NSDate'实例吗?向我们展示一些代码。 – 2013-02-27 18:38:49

回答

3

这应该适合你。您可能需要将您的NSString转换为NSDate,然后再将其发送到NSDatePicker。请记住,您可能需要设置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; 
+0

非常感谢你的工作 – user1850984 2013-02-28 02:59:35

1
-(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; 
} 
相关问题