【发布时间】:2021-06-24 20:11:47
【问题描述】:
我正在尝试在太平洋标准时间午夜获取第二天的日期对象,但我正在努力寻找一种方法来确保时区正确。此代码将返回第二天午夜的日期对象,但不在 PST 中,我该如何解决这个问题?我不是在寻找格式化的字符串。
func getTomorrowMidnightPST() -> Date {
let date = Calendar.current.date(byAdding: .day, value: 1, to: Date())!
let cal = Calendar(identifier: .gregorian)
return cal.startOfDay(for: date)
}
【问题讨论】:
-
日期没有时区,所以你不能这样做
-
您认为它可以像这样工作的原因是,Apple 让
Dates 在打印到控制台时转换为人类可读的格式。当打印日期时,它会使用DateFormatter实例转换为字符串,其中timeZone的DateFormatter是GMT。