我需要当前时间与服务器时间进行比较。我用这段代码得到了字符串格式的正确时间。
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "H:mm"
let datestring = dateFormatter.string(from: Date())
但是当我再次将字符串转换为日期格式时,它将显示错误的结果。
日期字符串
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "H:mm"
let datestring = dateFormatter.string(from: Date())
结果:15:30
字符串日期
let dateFormatter1 = DateFormatter()
dateFormatter1.dateFormat = "H:mm"
dateFormatter.timeStyle = .short
dateFormatter.timeZone = TimeZone.current
let dateFromString: Date? = dateFormatter1.date(from: datestring)
结果:2000-01-01 10:00:00 +0000
答案 0 :(得分:0)
dateFromString
是正确的。请记住,日期始终是使用UTC打印的,而不是您的时区,通常是 。因此,UTC上午10点实际上是您所在时区的3:30 pm。您只为15:30
提供时间dateFormatter1
。其他日期成分(年,月,日,秒)是DateFormatter
实例的默认日期。