iOS - Swift NSTimeZone 时区

前言

	public class NSTimeZone : NSObject, NSCopying, NSSecureCoding
  • NSTimeZone 表示时区信息。

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))
上一篇:php_DWZ-JUI中碰到的问题解决方法详解(thinkphp+dwz)


下一篇:Perl system(cmd) 和 `cmd` 的区别探讨