将时间字符串转换为时间间隔字符串的最佳方法

时间:2017-02-07 02:50:39

标签: swift date nsdateformatter date-formatting

我有一个应用程序,以#34; 5:35 PM"我想添加一个选项,以便从现在起以间隔的形式显示时间,例如:" 23分钟"。

我是swift的新手,我仍在处理日期和日期格式化程序

1 个答案:

答案 0 :(得分:0)

这样做的一种方法是扩展Date类以返回差异 - 尽管你只显示分钟,你应该能够处理“3天,2小时,23分钟”的间隔 - 当然,您可以选择将其显示为“3天”或“超过51小时”

extension Date
{
    func differenceInDays(date: Date) -> Int
    {
        return Calendar.current.dateComponents([.day], from: self, to: date).day!
    }
    func differenceInHours(date: Date) -> Int
    {
        // returns the TOTAL number of hours, not just the hour component
        return Calendar.current.dateComponents([.hour], from: self, to: date).hour!
    }
    func differenceInMinutes(date: Date) -> Int
    {
        // returns the TOTAL number of minutes, not just the minute component
        return Calendar.current.dateComponents([.minute], from: self, to: date).minute!
    }
}