【发布时间】:2017-05-01 21:31:29
【问题描述】:
我有以下字符串作为 12 小时格式时间:
let timeFrom = "05:30 AM";
let timeTo = "04:35 PM";
并尝试从中获取日期以进行比较,如下所示:
let openTime = timeFrom.date(format: "hh:mm a")
let closeTime = timeTo.date(format: "hh:mm a")
有了这个扩展:
extension String
{
func date(format:String) -> Date?
{
let formatter = DateFormatter()
formatter.dateFormat = format
formatter.timeZone = NSTimeZone.local
return formatter .date(from: self)
}
}
当我打印 openTime 和 closeTime 时,我得到的时间值不正确:
print(openTime) // 2000-01-01 00:00:00 +0000
print(closeTime) // 2000-01-01 11:00:00 +0000
为什么会这样?我认为这与时区有关,所以我访问了NSDateFormatter return wrong date + Swift,但对我没有任何帮助。如果有人有解决方案,请帮助我。谢谢!
【问题讨论】:
-
找出“hh”和“HH”之间的区别。
-
哎呀..应该有'hh'。感谢您指出@el Tomato。检查...
-
@rmaddy:我问过字符串到日期的时间不正确。重复链接是关于字符串到字符串的格式。您必须正确看待这两个问题。
-
您希望看到什么结果?
标签: swift date time nsdateformatter