【发布时间】:2018-12-10 10:51:04
【问题描述】:
在 iOS 12.1 中,我使用以下代码获取实际日期 -
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.timeZone = TimeZone(identifier: "GMT")!
let startDate = dateFormatter.date(from: startDate)
print("the startdate - ",startDate)
// the startdate - Optional(2018-12-10 14:58:06 +0000)
let secondsFromGMT = TimeZone.current.secondsFromGMT()
let date = Date().addingTimeInterval(TimeInterval(secondsFromGMT))
print("the date from seconds gmt - ",date)
// the date from seconds gmt - 2018-12-10 16:10:32 +0000
let seconds = abs(Calendar.current.dateComponents([.second], from: startDate!, to: date).second ?? 0)
但在 iOS 9.1 中使用相同的代码我得到不同的日期,如下所示
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.timeZone = TimeZone(identifier: "GMT")!
let startDate = dateFormatter.date(from: startDate)
print("the startdate - ",startDate)
// the startdate - Optional(2018-12-10 14:58:06 +0000)
let secondsFromGMT = TimeZone.current.secondsFromGMT()
// secondsFromGMT is 0
let date = Date().addingTimeInterval(TimeInterval(secondsFromGMT))
print("the date from seconds gmt - ",date)
// the date from seconds gmt - 2018-12-10 10:44:38 +0000
let seconds = abs(Calendar.current.dateComponents([.second], from: startDate!, to: date).second ?? 0)
因此,如果您检查打印语句,我没有得到实际的当前日期。 那么如何在不使用任何 Web 服务的情况下在两个版本中实现相同的日期呢?
【问题讨论】:
-
“实际日期”——现在的日期——是
Date()。结束。时区等无关紧要。 -
@matt Date() 在 12.1 和 9.1 中有所不同,您可以自行检查。
-
不,没有什么不同。就是现在。总是。