我在对象上有这个方法:
- (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。有任何想法吗?谢谢!
答案 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];
}