如何将字符串转换为时间日期并快速从当前时间中减去?

时间:2018-06-26 15:24:47

标签: ios swift

在我的应用程序中,我们从服务器获取时间,例如“印度标准时间2018年6月26日(星期二)下午1:37:01”。从中我们拆分出字符串,然后将“ 1:37:01”作为字符串。

现在,我需要将上述字符串(即“ 1:37:01”)转换为日期,然后从当前时间中减去它。

我认为这很容易,但是我坚持要实现这一点。请任何人帮助我解决这个问题。

1 个答案:

答案 0 :(得分:-1)

我的建议是使用完整的日期字符串来计算差异,因为这样您就不必基于小时和分钟之类的日历组件来计算时间

使用完整的日期字符串,此方法将类似于此代码中所示

  func date(from dateString: String) -> Date? {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "EEEE, MMM d, yyyy 'at' h:mm:ss a"
        dateFormatter.locale = Locale(identifier: "en_IN")
        dateFormatter.amSymbol = "AM"
        dateFormatter.pmSymbol = "PM"

        let date: Date? = dateFormatter.date(from: dateString )
        let timeInterval =  date?.timeIntervalSinceNow

        let formatter = DateComponentsFormatter()
        formatter.unitsStyle = .full
        formatter.allowedUnits = [.hour, .minute]

        // Use the configured formatter to generate the string.
        let diffrenceTimeString = formatter.string(from: timeInterval!) ?? ""
        print("Difference in time is  \(diffrenceTimeString)")

        return date
    }

并使用您的字符串调用该函数

date(from: "Tuesday, June 26, 2018 at 1:37:01 PM")

这是结果

enter image description here