0

我有一个这种形式的字符串:“h:mm a”,我试图将日期选择器设置为那个时间。我试过这个:

NSDate *exampleDateFromString = [dateFormat dateFromString:@"8:48 AM"];
datepicker.date = exampleDateFromString;

但它不起作用,这是因为您无法从字符串中设置日期吗?还是我做错了?如果是这样,我该怎么做?


编辑

我也试过这个:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"h:mm a"];
    NSDate *exampleDateFromString = @"8:48 AM"];
    datepicker.date = exampleDateFromString;

我的日期选择器是

datepicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0.0, 44.0, 0.0, 0.0)];
    datepicker.datePickerMode = UIDatePickerModeDate;
    datepicker.minuteInterval = 5;
    datepicker.datePickerMode = UIDatePickerModeTime;
    [datepicker addTarget:self action:@selector(picker1Changed) forControlEvents:UIControlEventValueChanged];

编辑

问题是在我分配和启动选择器之前设置日期。给大家添麻烦了。

4

4 回答 4

2

这应该有效:

NSDateFormatter *dateFormat;
 dateFormat = [[NSDateFormatter alloc] init];
 [dateFormat setDateFormat:@"h:mm a"];

 NSDate *exampleDateFromString =[dateFormat dateFromString:@"8:48 AM"]; 
 [datepicker setDate:exampleDateFromString]

如果这不起作用,则表示您尚未设置datepickeroultet.

于 2013-09-08T22:49:32.080 回答
0

好吧,首先要澄清:

NSDate是用于保存日期的 Objective-C 类,并且

NSDateFormatter是用于设置和更改日期格式的 Objective-C 类

所以你想要做的是:

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"h:mm a"];
    NSDate *exampleDateFromString = [dateFormatter dateFromString:@"8:48 AM"];
    datepicker.date = exampleDateFromString;

这应该可以解决问题。

关键是您将数据格式设置为NSDateFormatter,并使用其方法以NSDate您描述的格式从数据字符串(即上午 8 点 48 分)返回。

于 2013-09-08T22:12:58.667 回答
0

您应该设置一个明确定义的语言环境,否则格式“h:mm a”可能会以某种与语言环境相关的方式解释:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"h:mm a"];
[dateFormat setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
NSDate *exampleDateFromString = [dateFormat dateFromString:@"8:48 AM"];
datepicker.date = exampleDateFromString;
于 2013-09-08T22:17:14.330 回答
-1

试试这个...它会工作

 NSDateFormatter *dateFormat;
  dateFormat = [[NSDateFormatter alloc] init];
 [dateFormat setDateFormat:@"h:mm a"];
  NSDate *exampleDateFromString =[dateFormat dateFromString:@"8:48 AM"]; 
  date-picker.minimumDate=exampleDateFromString;
 [date-picker setDate:exampleDateFromString];
于 2014-09-23T06:41:52.923 回答