【发布时间】:2017-11-20 20:59:44
【问题描述】:
我想将一些数据作为字典存储在我的应用程序中,相对于这些数据的创建日期。它应该看起来像这样:
// hours
[ 17:00 - 18:00 : 34.5,
18:00 - 19:00 : 41.2,
... ]
// days
[ 2017-11-19 - 2017-11-20 : 37.9,
2017-11-20 - 2017-11-21 : 31.1,
... ]
DateInterval 结构似乎是本词典中键的完美候选者。但是当我运行一些基本测试时,我发现虽然使用Date() init 创建的日期代表了给定时刻的正确信息,但来自Calendar.current 的DateInterval 结构似乎默认为GMT+0 作为时区,所以我得到以下输出:
let date = Date() //outputs "Nov 20, 2017 at 10:32 PM"
let hourInterval = Calendar.current.dateInterval(of: .hour, for: date)
//outputs: 2017-11-20 20:00:00 +0000 to 2017-11-20 21:00:00 +0000
所以它比我/用户的时区晚了 2 小时。使用DateInterval 的正确方法是什么,它不会在时区中移动?
【问题讨论】:
-
这就是间隔的打印(使用GMT)。
标签: swift date calendar dateinterval