通过NSDataDetector检测持续时间

时间:2014-03-28 21:37:07

标签: objective-c parsing datetime ios7 nsdatadetector

我尝试使用NSDataDetector来检测字符串中的不同数据。我注意到,当检测到日期(即resultType为NSTextCheckingTypeDate)时,有三个有效的属性:

  • 日期
  • 持续时间
  • 的timeZone

我能够弄清楚如何创建为日期和时区生成值的字符串,但我不确定哪个字符串会产生持续时间的值。

例如,当我尝试解析12:15 UTC时,它会填充日期和时区。我认为像10 minutes这样的东西会产生持续时间的值,但它甚至不会产生匹配。

注意duration应该符合NSHipsterApple的要求。请注意在NSTextCheckingResult文档中,有一个标题为文本检查日期和时间的结果的部分提及duration

1 个答案:

答案 0 :(得分:3)

如果数据检测器检测到日期间隔,您将获得持续时间。例如,使用此字符串:"从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时区,这就是为什么小时在结果中被抵消)