的距离半小时距离时。
我在 swift 4.2 上。我正在努力尝试在iPhone中获得UTC和iPhone的偏移时间。
我有这个代码
extension TimeZone {
func offsetFromGMT() -> String
{
let localTimeZoneFormatter = DateFormatter()
localTimeZoneFormatter.timeZone = self
localTimeZoneFormatter.dateFormat = "Z"
return localTimeZoneFormatter.string(from: Date())
}
}
func getCurrentTimeZone() -> String{
return String (TimeZone.current.identifier)
}
var tzOffset = ""
let currentTimeZone = getCurrentTimeZone()
TimeZone.knownTimeZoneIdentifiers.forEach({ timeZoneIdentifier in
if let timezone = TimeZone(identifier: timeZoneIdentifier)
{
//print("(timezone.identifier) (timezone.offsetFromGMT())")
if(timezone.identifier == currentTimeZone){
tzOffset = timezone.offsetFromGMT()
}
}
})
结果
如果我做
print(tzOffset)
我有
-0500
应该是-5
,因为我的CurrentTimeZone是America/Montreal
?
有人可以给我提示吗?
您可以获取当前时区,从GMT获取秒数并将其除以3600。
TimeZone.current.secondsFromGMT() / 3600 // -3 hs America/Sao_Paulo (current) Brazil
如果您需要更精确的时间,例如小时的分数,只需将其转换为duble。
应该是 -0500
。
从Wikipedia页面
它具有4位数字而不是一位数字的原因是因为它是24小时格式的,并且在距UTC半小时距离