我已经搜索和搜索,但大多数时候帖子都在谈论从 Date() 创建本地化字符串。我需要一个日期对象来设置定时器在正确的时间触发。
我意识到我可能会遗漏一些东西......这是我迄今为止最好的:
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(...) 日期对象创建日期会如此不同?
先感谢您!