ios - stringFromDate 和 dateFromString 有时会返回 null

标签 ios objective-c nsdateformatter

我只需要将格式为“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/

相关文章:

ios - UITableView 单元格显示错误的图像

java - 计算当前年龄;使用Java

ios - 从 iOS 10 中的本地通知启动应用程序

android - 如何捕获设备上的应用程序卸载并让服务器知道这一点(iOS/Android)

ios - Objective C 解析 JSON

cocoa - 在 NSDateFormatter 中保留时区

ios - 使用 NSDateFormatter 将字符串转换为日期

ios - BLE设备随机断开

ios - 从 mvxSlidingpanels 的左侧 Pane 导航到查看模型

ios - UICollectionView 委托(delegate)方法 cellForItemAtIndexPath :indexPath not called from sizeForItemAtIndexPath