gpt4 book ai didi

iOS 获取没有 DST 偏移的时区字符串

转载 作者:行者123 更新时间:2023-11-28 07:25:26 26 4
gpt4 key购买 nike

我正在寻找时区列表,但在尝试生成时区列表时,我得到了添加到其中的 DST 偏移量。但我想要标准时间,而不是 DST 时间。这是我正在使用的代码。对于丹麦,我得到的是 GMT+2 而不是 GMT+1

    let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .long
dateFormatter.timeStyle = .long
dateFormatter.dateFormat = "ZZZZ"

let list = TimeZone.knownTimeZoneIdentifiers
for (i, city) in list.enumerated() {
let timezone = TimeZone(identifier: city)
dateFormatter.timeZone = timezone

var isSupportDST = false
if timezone?.nextDaylightSavingTimeTransition != nil {
isSupportDST = true
}

let date = Date()
var timezoneString = dateFormatter.string(from: date)

if timezoneString.count > 3 {
timezoneString.insert(" ", at: timezoneString.index(timezoneString.startIndex, offsetBy: 3))
}
if timezoneString.count > 5 {
timezoneString.insert(" ", at: timezoneString.index(timezoneString.startIndex, offsetBy: 5))
}

var formattedCityName = city
formattedCityName = city.replacingOccurrences(of: "_", with: " ")

var dstoffset = 0 as TimeInterval
if let offset = timezone?.daylightSavingTimeOffset(){
dstoffset = offset
}

let cityWithTimezone = CityWithTimeZone(city: formattedCityName, timeZoneString: timezoneString, timeZoneInSeconds: timezone?.secondsFromGMT() ?? 0, dstOffset: dstoffset, isDSTSupport: isSupportDST)
cityList.insert(cityWithTimezone, at:i)
}

最佳答案

请尝试像这样设置格式化程序的时区

let timezone = TimeZone(identifier: city)
dateFormatter.timeZone = TimeZone(secondsFromGMT: TimeZone.current.secondsFromGMT())

它将正确设置当前时间。

关于iOS 获取没有 DST 偏移的时区字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56752467/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com