当用户有24小时的时间时,我只是试图转动Date对象"在他们的iPhone上启用了一个12小时的时间"日期对象。
我已经尝试过如前所述的关于此问题的帖子,但我没有运气:
初始finalDate对象:日期2017-08-30 22:00:00 UTC
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier:"en_US")
dateFormatter.dateFormat = "MM/dd/yyyy h:mm a"
let dateString = dateFormatter.string(from: finalDate)
let theFinalConvertedDate = dateFormatter.date(from: dateString)
最终结果:
theFinalConvertedDate Date? 2017-08-30 22:00:00 UTC
我不确定为什么会发生这种情况,因为dateString打印出来是:
"08/30/2017 5:00 PM"
所以它最初将其转换为预期的输出,但最终的最终变量是最终的? 2017-08-30 22:00:00 UTC
答案 0 :(得分:2)
尝试更改Date
对象的格式没有任何意义。 Date
没有格式。您只需使用DateFormat
将Date
转换为String
即可获得所需格式的字符串。
记录Date
始终以固定格式显示UTC时区中的日期值。
您只需要:
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier:"en_US_POSIX")
dateFormatter.dateFormat = "MM/dd/yyyy h:mm a"
let dateString = dateFormatter.string(from: finalDate)
dateString
是您关心的价值。这将是所需的格式。
请注意,您需要使用en_US_POSIX
以确保结果不会受到iOS设备上用户的时间设置的影响。