我正在尝试使用包含日期/时间的NSString,并从中创建一个NSDate对象,以便我可以相应地进行操作。
我过去使用过NSDataDetector没有问题。但是,当我现在尝试时,detectDate返回当前日期,而不是字符串中的日期。
有人可以解释为什么这不会像我过去使用的那样从字符串中返回日期吗?或者建议如何最好地实现这一目标?
非常感谢。
NSString *myDate = @"2014-03-13T12:31:00-07:00";
__block NSDate *detectedDate;
NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingAllTypes error:nil];
[detector enumerateMatchesInString:myDate
options:kNilOptions
range:NSMakeRange(0, [myDate length])
usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop)
{ detectedDate = result.date; } ];
NSLog(@"Result:%@",detectedDate);
答案 0 :(得分:0)
在评论中见@gaige的回答,谁说: -
我通过从字符串中删除“T”来对此进行快速测试,并捕获了正确的日期。除非你知道你在一个文本块中获得了ISO格式的日期(而不是某些格式化的数据),否则你可能没问题。对于您知道自己正在获取日期的格式化数据,我建议将Peter Hosey的ISO 8601 NSDateFormatter作为一种出色的解析选择。
感谢。