我有一个应用程序来计算两个位置之间的时差,我只是意识到选择“欧洲/伦敦”和“GMT”都返回相同的字符串“格林威治标准时间”
buttonTimeZone.setTitle(timeZone?.localizedName(for: .standard, locale: locale), for: .normal)
print("timeZone:\(String(describing: timeZone?.description))")
按钮显示“格林威治标准时间”,但我相信格林威治标准时间和欧洲/伦敦有1小时的时差。
我添加了第二行print,以确保在测试时选择两个不同的区域。测试时间为2017年10月28日。
感谢您的投入!
答案 0 :(得分:1)
我刚刚意识到伦敦正处于夏令时,因为时钟已经改变了。我所要做的就是在DST时将样式从.standard改为.daylightsaving。
var title = timeZone?.localizedName(for: .standard, locale: locale)
if (timeZone?.isDaylightSavingTime(for: dateTimeComplete!))! {
title = timeZone?.localizedName(for: .daylightSaving, locale: locale)
}
buttonTimeZone.setTitle(title, for: .normal)