从日期时间字符串到 Swift 中的当前时间的天数时差 5

Time difference in days from a datetime string to current time in Swift 5

我的日期时间字符串为“15/06/2019 02:03:20 PM IST”。我需要计算 DateTime 字符串与当前日期和时间之间以天为单位的时差。

我可以使用

获取 currentDateTime
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy hh:mm:ss a zzz"
let now = Date()
print(dateFormatter.string(from: now))      //It gives output as 06/10/2019 11:08:52 AM GMT+5:30 not as IST timezone. 

但我无法将给定的 DateTime 字符串转换为日期对象以获取差异。

let registrationTime = "15/06/2019 02:03:20 PM IST"
print(dateFormatter.date(from: registrationTime))       //prints nil

我尝试将日历、区域设置和时区添加到日期格式化程序,但它没有 return 日期对象。我还尝试打破组件中的 registationTime(由 whiteSpace 分隔)并单独将它们从字符串转换为日期,但这也没有用。

要使其适用于印度标准时间,您需要将区域设置设置为印度

dateFormatter.locale = Locale(identifier: "en_IN")

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy hh:mm:ss a zzz"
dateFormatter.locale = Locale(identifier: "en_IN")

let now = Date()
print(dateFormatter.string(from: now))

let registrationTime = "15/06/2019 02:03:20 PM IST"
print(dateFormatter.date(from: registrationTime))

06/10/2019 09:35:48 AM GMT+2
Optional(2019-06-15 08:33:20 +0000)