我正在尝试使用包含日期/时间的NSString,并在其中创建一个NSDate对象,这样我就可以相应地操作。
我以前使用过NSDataDetector,没有问题。但是,当我现在尝试时,detectedDate将返回当前日期,而不是字符串中找到的日期。
请有人解释一下,为什么这不会像我在过去使用的那样从字符串中返回日期?或者建议如何才能最好地做到这一点?
非常感谢。
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);发布于 2014-08-27 17:00:20
见@gaige在评论中的回答,他说:-
通过从字符串中移除"T“,我对此进行了快速测试,它捕获了正确的日期。除非您知道您要在文本块中获得ISO格式日期(相对于某些格式化数据),否则您可能会没事。对于您知道要得到日期的格式化数据,我建议Peter的ISO8601 NSDateFormatter是一个很好的解析选择。
谢谢。
https://stackoverflow.com/questions/23196672
复制相似问题