【发布时间】:2018-04-27 21:00:13
【问题描述】:
我正在尝试从 API 端点的日期值中获取日期组件。我需要保留日期值,因为它们已经针对时区进行了调整。不幸的是,我无法控制 API 如何返回日期值。
当我从 API 中获取日期值(sessionTime)时,返回如下:
2017-12-05 08:00:00 +0000
我需要根据该时间设置本地通知,但是,当我尝试使用以下代码从该日期对象中提取组件时:
let notifyTime = Calendar.current.dateComponents(
[.year, .month, .day, .hour, .minute, .second], from: sessionTime)
我明白了:
year: 2017 month: 12 day: 5 hour: 2 minute: 0 second: 0 isLeapMonth: false
我距离格林威治标准时间六个小时,所以很明显发生了什么,但我希望我能阻止它并完全按原样提取日期组件。期望的输出是:
year: 2017 month: 12 day: 5 hour: 8 minute: 0 second: 0 isLeapMonth: false
有人可以帮忙吗?谢谢!
【问题讨论】:
标签: swift date nsdatecomponents