ios - 从复杂的NSString中提取日期

标签 ios objective-c string date nsstring

我没有在Xcode中解决此问题的能力:

我有这段文字:

“402
加西亚
15/01/15 10:26
休斯佩德天文台”

我想提取我确定为格林尼治标准时间+0的日期,然后添加手机格林尼治标准时间(例如GMT +1),并将旧日期替换为NSString中的新日期。

我刚刚在其他地方解决了GMT问题,所以我只需要提取日期字符串并将其替换为字符串,这样我的最终结果将是:

“402
加西亚
15年1月8日11:26
休斯佩德天文台”

任何帮助将不胜感激,并在此先感谢。

最佳答案

这正是NSDataDetector的用途。

我在NSString的类别中创建了一个方法:

@interface NSString (HASAdditions)

- (NSArray *)detectedDates;

@end


@implementation NSString (HASAdditions)

- (NSArray *)detectedDates {
    NSError *error = nil;
    NSDataDetector *dateDetector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeDate error:&error];
    if (!dateDetector) return nil;
    NSArray *matches = [dateDetector matchesInString:self options:kNilOptions range:NSMakeRange(0, self.length)];
    NSMutableArray *dates = [[NSMutableArray alloc] init];
    for (NSTextCheckingResult *match in matches) {
        if (match.resultType == NSTextCheckingTypeDate) {
            [dates addObject:match.date];
        }
    }
    return dates.count ? [dates copy] : nil;
}

您可以这样称呼它:
NSArray *dates = [@"402 Garcia 01/08/15 10:26 Observaciones del huésped" detectedDates];

您可以在NSHipster上阅读有关NSDataDetector的更多信息。

关于ios - 从复杂的NSString中提取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27861182/

相关文章:

ios - 使用 ALAsset 来自 GRKPhoto 的 UIImage

iphone - Xcode 4.3.1 Doxygen注释生成

Javascript:如何在字符串变量中包含 url?

python - 如何将此字符串列表转换为整数

objective-c - NSString 、 EXC_BAD_ACCESS 和 stringByAppendingString

Excel - 在 FilterXML 中添加 Excel 公式

iphone - 如何让数字键盘始终出现在 uiview 中?

iphone - MonoTouch 上传到 iOS 设备的问题

ios - 是否有任何天气 api 提供图像

ios - PromiseKit:如何在 ObjC 中进行重试/轮询?