我搜索过并搜索过,但大多数时候帖子都谈到从Date()创建本地化字符串。我需要一个日期对象来将Timer设置为在正确的时间触发。
我意识到我可能会遗漏一些东西......这是我迄今为止最好的:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM/dd/yy"
dateFormatter.locale = Locale.current
dateFormatter.timeZone = TimeZone.current
let todayDate = dateFormatter.date(from: "05/21/18")!
print(todayDate)
哪个输出:
2018-05-21 07:00:00 +0000
>问题:如果我将dateFormatter变量timeZone设置为.current,为什么会有+0000?
+更新01:
关注@MadProgrammer的评论:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM/dd/yy HH:mm:ss z"
dateFormatter.locale = Locale.current
dateFormatter.timeZone = TimeZone.current
let dateString = dateFormatter.string(from: Date())
let todayDate = dateFormatter.date(from: dateString)!
print(dateString)
print(todayDate)
哪个输出,第一个是正确的:
05/21/18 19:29:19 PDT
2018-05-22 02:29:19 +0000
>问题:为什么从dateFormatter.string(...)日期对象创建日期会如此不同?
提前谢谢!