Swift 5 中从日期时间字符串到当前时间的天数时差
Posted
技术标签:
【中文标题】Swift 5 中从日期时间字符串到当前时间的天数时差【英文标题】:Time difference in days from a datetime string to current time in Swift 5 【发布时间】:2019-10-06 05:47:47 【问题描述】:我的日期时间字符串为“15/06/2019 02:03:20 PM IST”。我需要计算 DateTime 字符串与当前日期和时间之间的天数时差。
我可以使用
获取 currentDateTimelet 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
我尝试将日历、区域设置和时区添加到日期格式化程序,但它没有返回日期对象。我还尝试打破组件中的注册时间(由空格分隔)并单独将它们从字符串转换为日期,但这也不起作用。
【问题讨论】:
我假设您的第二次转换是date(from:)
【参考方案1】:
要使其与印度标准时间一起使用,您需要将您的语言环境设置为印度的一种
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))
2019 年 6 月 10 日上午 09:35:48 GMT+2 可选(2019-06-15 08:33:20 +0000)
【讨论】:
非常感谢!它起作用了,我现在知道日期的不同了......以上是关于Swift 5 中从日期时间字符串到当前时间的天数时差的主要内容,如果未能解决你的问题,请参考以下文章
Java中计算两个字符串日期之间或当前时间与指定时间的天数差