NSDateFormatter返回Null

时间:2013-03-22 15:53:06

标签: ios nsdateformatter

我在对象上有这个方法:

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

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

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

2 个答案:

答案 0 :(得分: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"]];

答案 1 :(得分:-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];
}