Swift4:日历为我提供了错误的秒数值

时间:2018-08-07 12:39:45

标签: ios swift

对于我的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

0 个答案:

没有答案