objective-c - 通过 NSDataDetector 检测持续时间

标签 objective-c parsing datetime ios7 nsdatadetector

我正在尝试使用 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/

相关文章:

objective-c - 拖动 View

parsing - 解决 LALR 歧义

python - 在Python中,如何检查一个字符串以查看其中是否包含另一个字符串的任何组合?

java - 使用 Apache CSVParser 时如何去掉 header 中的额外引号

mysql - where 子句中的 SQL 日期比较未按预期工作

python date time 获取当前时间,但包含秒和小时和分钟

ios - 从 ViewController 调用 nib 方法

objective-c - 如何动画NSCollectionView的scrollToIndexPaths :scrollPosition:?

sql-server - 仅提及月份和年份时的sql server日期差异

ios - 以编程方式向 TextView 添加约束