前言
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))