前言

	@interface NSTimeZone : NSObject <NSCopying, NSSecureCoding>
  • NSTimeZone 表示时区信息。

1、NSTimeZone 时区的创建

	NSTimeZone *zone1 = [[NSTimeZone alloc] init];

	// 根据时区名称创建
NSTimeZone *zone2 = [[NSTimeZone alloc] initWithName:@"America/Chicago"];
NSTimeZone *zone3 = [NSTimeZone timeZoneWithName:@"America/Chicago"]; // 根据时区缩写创建
NSTimeZone *zone4 = [NSTimeZone timeZoneWithAbbreviation:@"EST"]; // 根据零时区的秒数偏移量创建
NSTimeZone *zone5 = [NSTimeZone timeZoneForSecondsFromGMT:28800];

2、NSTimeZone 时区的设置

	// 设置默认的时区
[NSTimeZone setDefaultTimeZone:[[NSTimeZone alloc] initWithName:@"America/Chicago"]]; NSTimeZone *systemZone = [NSTimeZone systemTimeZone]; // 本地时区可以被修改,而系统时区不能修改。
NSTimeZone *localZone = [NSTimeZone localTimeZone]; NSTimeZone *defaultZone = [NSTimeZone defaultTimeZone]; // NSCalendar 设置时区
/*
设置时区,设置为 GMT+8,即北京时间(+8)
*/
NSCalendar *calendar = [NSCalendar currentCalendar]; [calendar setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"CET"]];
[calendar setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:+28800]]; // NSDateFormatter 设置时区
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; // 设置时区,设置为 GMT
[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

3、NSTimeZone 时区的获取

	// 获取系统时区
NSTimeZone *zone1 = [NSTimeZone systemTimeZone]; // 获取本地时区
NSTimeZone *zone2 = [NSTimeZone localTimeZone]; // 获取默认时区
NSTimeZone *zone3 = [NSTimeZone defaultTimeZone];

4、获取时区的名称

	// 获取所有已知的时区名称
NSArray *zoneNames = [NSTimeZone knownTimeZoneNames]; NSTimeZone *zone = [NSTimeZone localTimeZone]; // 获取指定时区的名称
NSString *strZoneName = [zone name];

5、获取时区的缩写

	// 获取所有已知的时区缩写
NSDictionary *zoneAbbreviations = [NSTimeZone abbreviationDictionary]; NSTimeZone *zone = [NSTimeZone localTimeZone]; // 获取指定时区的缩写
NSString *zoneAbbreviation1 = [zone abbreviation]; // 获取指定时间所在时区名称缩写
NSString *zoneAbbreviation2 = [zone abbreviationForDate:[NSDate date]];

6、获取与零时区的间隔秒数

	NSTimeZone *zone = [NSTimeZone localTimeZone];

	// 获取当前时区与零时区的间隔秒数
NSInteger seconds1 = [zone secondsFromGMT]; // 获取指定时间所在时区与零时区的间隔秒数
NSInteger seconds2 = [zone secondsFromGMTForDate:[NSDate date]];

7、时区差值转换

	// 得到当前时间(世界标准时间 UTC/GMT)
NSDate *date = [NSDate date]; // 设置系统时区为本地时区
NSTimeZone *zone = [NSTimeZone systemTimeZone]; // 计算本地时区与 GMT 时区的时间差
NSInteger interval = [zone secondsFromGMT]; // 在 GMT 时间基础上追加时间差值,得到本地时间
date = [date dateByAddingTimeInterval:interval];

iOS - OC NSTimeZone 时区的更多相关文章

  1. iOS - Swift NSTimeZone 时区

    前言 public class NSTimeZone : NSObject, NSCopying, NSSecureCoding NSTimeZone 表示时区信息. 1.NSTimeZone 时区的 ...

  2. NSDate|NSTimeZone|时区|日历

    NSDate,NSDateFormatter以及时区转换-开发者-51CTO博客 iOS 时区转换 东八区 - 简书 iOS时间的时区转换以及一些方法记录 - 简书 iOS - OC NSTimeZo ...

  3. iOS - OC NSCalendar 日历

    前言 @interface NSCalendar : NSObject <NSCopying, NSSecureCoding> NSCalendar 对世界上现存的常用的历法进行了封装,既 ...

  4. iOS - OC 面向对象语法

    1.类 1)根类:因为类 NSObject 是层次结构的最顶层,因此称为根类. 可以将类称为子类(subclass)和父类(superclass),也可以将类称为子类和超类. 2)分类/类别(cate ...

  5. ios+oc面试题

    ios+oc面试题     浅复制和深复制的区别?//浅拷贝和深拷贝答案:浅层复制(copy):只复制指向对象的指针,而不复制引用对象本身.//通过对象的指针来访问这个对象深层复制(mutableCo ...

  6. iOS OC语言原生开发的IM模块--RChat

    iOS OC语言原生开发的IM模块,用于项目中需要原生开发IM的情况,具备发送文字.表情.语音.图片.视频等完整功能,包含图片预览视频播放等功能,此项目将会长期更新如有问题可以提出,我的邮箱:fshm ...

  7. NSTimeZone时区

    前言 NSTimeZone 表示时区信息. 1.NSTimeZone 时区的创建 NSTimeZone *zone1 = [[NSTimeZone alloc] init]; // 根据时区名称创建 ...

  8. iOS - OC NSDate 时间

    前言 NSDate @interface NSDate : NSObject <NSCopying, NSSecureCoding> NSDate 用来表示公历的 GMT 时间(格林威治时 ...

  9. iOS - OC Foundation 框架

    前言 框架是由许多类.方法.函数和文档按照一定的逻辑组织起来的集合,以使研发程序更容易. Foundation 框架:为所有程序开发奠定基础的框架称为 Foundation 框架. Cocoa :是指 ...

随机推荐

  1. fedora 20 yum出错

    需要利用linux做项目,所以在win10装了vmvare 以及 fedora,据说这个linux比较稳定.. 1.系统装好以后,需要先把terminal调处理,这才符合程序猿的习惯嘛,具体方法如下 ...

  2. java map 遍历

    转自http://rain-2372.iteye.com/blog/1615615 package com.spring.test_B11_aop1; import java.util.HashMap ...

  3. php开启openssl的方法

    windows下开启方法: 1: 首先检查php.ini中:extension=php_openssl.dll是否存在, 如果存在的话去掉前面的注释符‘:’, 如果不存在这行,那么添加extensio ...

  4. 简单选择排序(Java)

    简单选择排序: 每一趟在整个记录中找到最小的那个作为有序序列的第i个记录. class SelectSort{ public void p(int[] a){ for(int i=0;i<a.l ...

  5. JDBC的批量处理数据

    主要用到的方法有: preparedStatement.executeBatch();//积攒的数据执行 preparedStatement.clearBatch();//积攒的清除掉 prepare ...

  6. 网络编程中获取域名和id的方法

    package com.lanqiao.java.test; import java.net.InetAddress;import java.net.UnknownHostException; pub ...

  7. java文件写入和读出的序列化

    文件的写入入与读出都有它们自己的格式,不便于读入和取出,implement Serializable接口,实现任何个事文件的写入和读取取:

  8. Mix and Build(简单DP)

    Mix and Build Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 3936 Accepted: 1203 Case Ti ...

  9. hust 1010 最短循环节点

    题目链接:http://acm.hust.edu.cn/problem/show/1010 KMP失配指针的利用: next数组前缀和后缀最长公共长度,这样len - next[len];就是最短的循 ...

  10. Unix网络编程--卷一:套接字联网API

    UNIX网络编程--卷一:套接字联网API 本书面对的读者是那些希望自己编写的程序能够使用成为套接字(socket)的API进行彼此通信的人. 目录: 0.准备环境 1.简介 2.传输层:TCP.UD ...