我只需要将格式为“2013:07:24 11:05:04”的日期格式化为格式“24-lug-2013”,这是我用来执行此操作的代码:
NSDateFormatter *dtF = [[NSDateFormatter alloc] init];
[dtF setDateFormat:@"yyyy:MM:dd hh:mm:ss"];
NSDate *d = [dtF dateFromString:self.creationDate];
NSDateFormatter *dateFormatStr = [[NSDateFormatter alloc] init];
[dateFormatStr setDateFormat:@"d-MMM-yyyy"];
NSString *strDate = [dateFormatStr stringFromDate:d];
NSLog(@"%@",strDate);
这段代码工作正常,问题是在多次调用这个方法之后,有时我会得到一个空字符串,但输入的格式仍然是一样的。
例如,将这个字符串作为输入“2013:07:24 11:05:04”,我得到这个:24-lug-2013,这正是我想要的,但是在这种情况下调用 7 次之后,用这个输入“2013:07:24 13:47:31”我得到一个空的 NSDate,因此结果字符串为空。
问题出在哪里?? 谢谢
最佳答案
当传入的日期字符串与格式不匹配时,日期格式化程序返回 nil。您发布的代码在输入字符串上使用了 dateFromString。如果失败,那么您的 NSDate“d”将为 nil,因此对 stringFromDate 的调用也可能返回 nil。 (尽管如果你传入一个 nil 的 NSDate,stringFromDate 也可能会崩溃)
关于ios - stringFromDate 和 dateFromString 有时会返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21837989/