对于我的iOS应用,我需要一些日期和时间的计算。通过使用日历类,我发现该类为我提供了一些错误的19世纪及以前日期的值。在这段时间里,欧洲的时区非常混乱。例如,GMT + 0:53:28。日历类对此有所了解,并向我显示了正确的时区。但是“ secondsFromGMT”的返回值是错误的:在这种情况下为3600秒。是否有人对此错误或相关问题有经验?
import Foundation
let timeZone = TimeZone(identifier: "Europe/Berlin")
var calendar = Calendar.current
calendar.timeZone = timeZone!
let formatter = DateFormatter()
formatter.dateFormat = "dd.MM.yyyy HH:mm:ss"
formatter.locale = Locale(identifier: "en-US")
let date = formatter.date(from: "01.07.1622 08:10:00")!
formatter.dateStyle = .long
formatter.timeStyle = .long
let stringDate = formatter.string(from: date)
let offsetFromGMT = calendar.timeZone.secondsFromGMT(for: date)
print(stringDate, " Offset =", offsetFromGMT)
1622年7月1日,格林尼治标准时间+0:53:28上午8:10:00 = 3600