在我的应用程序中,我们从服务器获取时间,例如“印度标准时间2018年6月26日(星期二)下午1:37:01”。从中我们拆分出字符串,然后将“ 1:37:01”作为字符串。
现在,我需要将上述字符串(即“ 1:37:01”)转换为日期,然后从当前时间中减去它。
我认为这很容易,但是我坚持要实现这一点。请任何人帮助我解决这个问题。
答案 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")
这是结果