0

我在一个对象上有这个方法:

  - (NSString *)formattedScheduledOn
  {
      NSDateFormatter *dateFormater = [[NSDateFormatter alloc] init];
      [dateFormater setDateFormat:@"MM/dd/yyyy hh:mm"];
      return [dateFormater stringFromDate:self.scheduledOn];
  }

scheduleOn 是一个 NSDate 对象。将其显示为原始日期会产生类似:2013-03-22T09:44:28-07:00

但我总是从那个方法中得到 null 。有任何想法吗?谢谢!

4

2 回答 2

2

确保您的日期不是nil. 试试下面的代码,看看你会得到什么回报

  NSDateFormatter *dateFormater = [[NSDateFormatter alloc] init];
  [dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
  [dateFormater setDateFormat:@"MM/dd/yyyy hh:mm"];
  return [dateFormater stringFromDate:[NSDate date]];

如果更改您将日期作为字符串传递,那么您应该根据传递的日期字符串设置格式。

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssz"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
于 2013-03-22T15:57:10.970 回答
-1

为什么不做这样的事情?

将您的 datePicker 设置为选择或任何您想要的。

[pick addTarget:self action:@selector(updateDateLabel:) forControlEvents:UIControlEventValueChanged];

-(IBAction)updateDateLabel:(id)sender {
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateStyle:NSDateFormatterLongStyle];
    [formatter setTimeStyle:NSDateFormatterMediumStyle];
    dateLabel.text = [formatter stringFromDate:pick.date];
}
于 2013-03-22T15:59:32.277 回答