1

我已经搜索和搜索,但大多数时候帖子都在谈论从 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(...) 日期对象创建日期会如此不同?

先感谢您!

4

0 回答 0