Swift:本地日期对象和本地时区

时间:2018-05-22 01:48:16

标签: ios swift dateformatter

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

提前谢谢!

0 个答案:

没有答案