【问题标题】:Detecting a duration via NSDataDetector通过 NSDataDetector 检测持续时间
【发布时间】:2014-05-08 13:14:15
【问题描述】:

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

  • 日期
  • 持续时间
  • 时区

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

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

注意duration 应该根据NSHipsterApple 工作。请注意在NSTextCheckingResult 文档中,有一个标题为日期和时间的文本检查结果 的部分提到了duration

【问题讨论】:

    标签: objective-c parsing datetime ios7 nsdatadetector


    【解决方案1】:

    如果数据检测器检测到日期间隔,您将获得一个持续时间。例如这个字符串:“从 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 时区,这就是结果中时间偏移的原因)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-11
      • 2014-07-27
      • 2013-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多