在 iOS 中设置时区的正确格式是什么?

What is the proper format for setting TimeZones in iOS ?

我试过使用这个 Wiki 来获得适当的时区缩写以用于:

let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = formatString
        dateFormatter.timeZone = NSTimeZone(abbreviation: setZone)

和 "GMT" 与 "GST" 一样工作,但由于某些原因,很大一部分缩写不起作用(例如 GYT)。我应该使用其他格式吗?我也尝试过传入 UTC-X,但这也没有用

这是我从 NSTimer 调用的函数...

self.clock = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: #selector(ViewController.updateClock), userInfo: nil, repeats: true)

func updateClock() {
      dispatch_async(dispatch_get_main_queue()) {
        let date = NSDate();
        // "Apr 1, 2015, 8:53 AM" <-- local without seconds

        var formatter = NSDateFormatter();
        formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"

        _ = formatter.stringFromDate(date);
                    // "2015-04-01 08:52:00 -0400" <-- same date, local, but with seconds
        formatter.timeZone = NSTimeZone(abbreviation: "CET");
        let cetTimeZoneStr = formatter.stringFromDate(date);
        // "2015-04-01 12:52:00 +0000" <-- same date, now in UTC

        self.timer.text = cetTimeZoneStr


    }
}

这里有一些代码可以让系统知道时区!

let blah = NSTimeZone.knownTimeZoneNames()
let blah2 = NSTimeZone.abbreviationDictionary()
print("\(blah) \(blah2)")