我正在尝试使用 NSDataDetector检测字符串中的不同数据。我注意到,在检测日期时(即 resultType 为 NSTextCheckingTypeDate),存在三个有效属性:
- 日期
- 持续时间
- 时区
我能够弄清楚如何创建为日期和时区生成值的字符串,但我不确定哪个字符串将生成持续时间的值。
例如,当我尝试解析 12:15 UTC
时,它会填充日期和时区。我认为像 10 分钟
这样的东西会产生持续时间的值,但它甚至不会产生匹配。
注意:持续时间
应根据NSHipster工作和 Apple 。请注意,在 NSTextCheckingResult
文档中,有一个标题为日期和时间的文本检查结果的部分,其中提到了持续时间
。
最佳答案
如果数据检测器检测到日期间隔,您将获得持续时间。例如,使用以下字符串:“从 12 月 10 日 2 点到 12 月 12 日 1 点”
和这个日志代码:
NSLog(@"Match: %@ (duration %g)", result, result.duration);
我得到:
Match: <NSDateCheckingResult: 0x7fc2da810830>{0, 45}{2014-12-10 13:00:00 +0000-2014-12-12 12:00:00 +0000} (duration 169200)
(我位于 UTC+1 时区,这就是结果中小时数偏移的原因)
关于objective-c - 通过 NSDataDetector 检测持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22723617/