代码之家  ›  专栏  ›  技术社区  ›  Evgeniy Kleban

从特定日期Swift获得更大日期单位的最简单方法

  •  0
  • Evgeniy Kleban  · 技术社区  · 9 年前

    有没有一种简单的方法可以做到这一点,而不需要使用太多的if和比较2个NSDates的秒数?

    谢谢

    1 回复  |  直到 9 年前
        1
  •  2
  •   David Rönnqvist    9 年前

    听起来像 DateComponentsFormatter

    我以这两个日期为例

    let earlier = // 29 Sep 2017, 04:36 
    let later   = //  2 Oct 2017, 10:04 
    

    let componentFormatter = DateComponentsFormatter()
    componentFormatter.string(from: earlier, to: later)
    // "3d 5:28:07" 
    

    如果像在您的问题中一样,希望格式化的字符串使用完整的单元名称,则可以配置 unitStyle 格式化程序的:

    componentFormatter.unitsStyle = .full
    // "3 days, 5 hours, 28 minutes, 7 seconds" 
    

    maximumUnitCount 格式化程序的:

    componentFormatter.maximumUnitCount = 1
    // "3 days" 
    

    includesApproximationPhrase 在格式化程序上:

    componentFormatter.includesApproximationPhrase = true
    // "About 3 days" 
    
    推荐文章