前言
public class NSTimeZone : NSObject, NSCopying, NSSecureCoding
1、NSTimeZone 時區的創建
// 根據時區名稱創建
let zone1:NSTimeZone? = NSTimeZone(name: "America/Chicago")
// 根據時區縮寫創建
let zone2:NSTimeZone? = NSTimeZone(abbreviation: "EST")
// 根據零時區的秒數偏移量創建,+28800 為 GMT+8,即北京時間(+8)
let zone3:NSTimeZone = NSTimeZone(forSecondsFromGMT: +28800)
2、NSTimeZone 時區的設置
// 設置默認的時區
NSTimeZone.setDefaultTimeZone(NSTimeZone(name: "America/Chicago")!)
let defaultZone = NSTimeZone.defaultTimeZone()
let systemZone = NSTimeZone.systemTimeZone()
// 本地時區可以被修改,而系統時區不能修改
let localZone = NSTimeZone.localTimeZone()
// NSCalendar 設置時區
let calendar:NSCalendar = NSCalendar.currentCalendar()
// 設置時區,設置為 GMT+8,即北京時間(+8)
calendar.timeZone = NSTimeZone(abbreviation: "EST")!
// 設置時區,設置為 GMT+8,即北京時間(+8)
calendar.timeZone = NSTimeZone(forSecondsFromGMT: +28800)
// NSDateFormatter 設置時區
let formatter:NSDateFormatter = NSDateFormatter()
formatter.timeZone = NSTimeZone(forSecondsFromGMT: +28800)
3、NSTimeZone 時區的獲取
// 獲取系統時區
let systemZone = NSTimeZone.systemTimeZone()
// 獲取本地時區
let localZone = NSTimeZone.localTimeZone()
// 獲取默認時區
let defaultZone = NSTimeZone.defaultTimeZone()
4、獲取時區的名稱
// 獲取所有已知的時區名稱
let zoneNames = NSTimeZone.knownTimeZoneNames()
// 獲取指定時區的名稱
let localZoneName = NSTimeZone.localTimeZone().name
5、獲取時區的縮寫
// 獲取所有已知的時區縮寫
let zoneAbbreviations = NSTimeZone.abbreviationDictionary()
// 獲取指定時區的縮寫
let localZoneAbbreviation = NSTimeZone.localTimeZone().abbreviation
// 獲取指定時間所在時區名稱縮寫
let dateLocalAbbreviation = NSTimeZone.localTimeZone().abbreviationForDate(NSDate())
6、獲取與零時區的間隔秒數
let zone = NSTimeZone.localTimeZone()
// 獲取當前時區與零時區的間隔秒數
let seconds1 = zone.secondsFromGMT
// 獲取指定時間所在時區與零時區的間隔秒數
let seconds2 = zone.secondsFromGMTForDate(NSDate())
7、時區差值轉換
// 得到當前時間(世界標准時間 UTC/GMT)
var date:NSDate = NSDate()
// 設置系統時區為本地時區
let zone:NSTimeZone = NSTimeZone.systemTimeZone()
// 計算本地時區與 GMT 時區的時間差
let second:Int = zone.secondsFromGMT
// 在 GMT 時間基礎上追加時間差值,得到本地時間
date = date.dateByAddingTimeInterval(NSTimeInterval(second))