iOS 时区获取问题
时区缩写 UTC, CST, GMT, CEST 以及转换
UTC是协调世界时(Universal Time Coordinated)英文缩写,是由国际无线电咨询委员会规定和推荐,并由国际时间局(BIH)负责保持的以秒为基础的时间标度。UTC相当于本初子午线(即经度0度)上的平均太阳时,过去曾用格林威治平均时(GMT)来表示.北京时间比UTC时间早8小时,以1999年1月1日0000UTC为例,UTC时间是零点,北京时间为1999年1月1日早上8点整。
GMT(Greenwich Mean Time)是格林尼治平时:
由于地球轨道并非圆形,其运行速度又随着地球与太阳的距离改变而出现变化,因此视太阳时欠缺均匀性。视太阳日的长度同时亦受到地球自转轴相对轨道面的倾斜度所影响。为着要纠正上述的不均匀性,天文学家计算地球非圆形轨迹与极轴倾斜对视太阳时的效应。平太阳时就是指经修订后的视太阳时。在格林尼治子午线上的平太阳时称为世界时(UT0),又叫格林尼治平时(GMT)。 为了确保协调世界时与世界时(UT1)相差不会超过0.9秒,有需要时便会在协调世界时内加上正或负闰秒。因此协调世界时与国际原子时(TAI)之间会出现若干整数秒的差别。位于巴黎的国际地球自转事务中央局(IERS)负责决定何时加入闰秒。
也就是说,UTC 基本上等于GMT
CET
(英語:Central European Time,CET)欧洲中部时间是比世界标准时间(UTC)早一个小时的时区名称之一。它被大部分欧洲国家和部分北非国家采用。冬季时间为UTC+1,夏季欧洲夏令时为UTC+2。
CEST
欧洲中部夏令时间(Central European Summer Time,简称CEST)比世界标准时间(UTC)早两个小时的时区名称之一。它被大部分欧洲国家和部分北非国家在夏天采用(UTC+2),冬季这些国家使用欧洲中部时间(UTC+1)
时区在线转换工具网站 http://www.timebie.com/timezone/centraleuropeansummerbeijing.php
CST
CST却同时可以代表如下 4 个不同的时区:
Central Standard Time (USA) UTC-6:00
Central Standard Time (Australia) UTC+9:30
China Standard Time UTC+8:00
Cuba Standard Time UTC-4:00
可见,CST可以同时表示美国,澳大利亚,中国,古巴四个国家的标准时间。 也就是说,这个需要根据使用的场景来确定使用的是哪个时区。
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
1. 标准的获取时区的正确方法
[NSTimeZone resetSystemTimeZone]; // 重置手机系统的时区
NSInteger offset = [NSTimeZone localTimeZone].secondsFromGMT;
offset = offset/3600;
NSString *tzStr = [NSString stringWithFormat:@"%ld", (long)offset];
获取的时区:(Asia/Shanghai (GMT+8) offset 28800)
2. 截取 GMT 方法
//获取当地的时区
NSString *tzStr;
NSTimeZone *localTimeZone = [NSTimeZone localTimeZone];
NSArray *zoneArray = [[NSString stringWithFormat:@"%@", localTimeZone] componentsSeparatedByString:@"GMT"];
NSString *tempTZ = [NSString stringWithFormat:@"%@", zoneArray.lastObject];
// eg: +8 去掉"+", -8 传入全部, +0 / -0
// - 1 ~ 12, + 1 ~ +12, 0
if([tempTZ hasPrefix:@"+"]) {
tzStr = [NSString stringWithFormat:@"%c", [tempTZ characterAtIndex:1]];
}else if([tempTZ hasPrefix:@"-"]){
tzStr = [NSString stringWithFormat:@"%@", [tempTZ substringToIndex:2]];
}else if([tempTZ hasPrefix:@"0"]) {
tzStr = [NSString stringWithFormat:@"%@", [tempTZ substringToIndex:1]];
}
获取的时区: Europe/Berlin (CEST) offset 7200 (Daylight)
鉴于有些时区非携带 GMT 格式吗故 "方法二 " 不可行, 采用 "方法一".
根据距离 0 时区偏差的秒数算出时区.
iOS 时区获取问题的更多相关文章
- iOS 直播-获取音频(视频)数据
iOS 直播-获取音频(视频)数据 // // ViewController.m // capture-test // // Created by caoxu on 16/6/3. // Copyri ...
- iOS如何获取网络图片(二)
ios如何获取图片(二)无沙盒下 解决问题 *解决问题1:tableView滑动卡顿,图片延时加载 解决方法:添加异步请求,在子线程里请求网络,在主线程刷新UI *解决问题2:反复请求网络图片,增加用 ...
- IOS中获取各种文件的路径介绍及方法
IOS中获取各种文件的目录路径的方法 技术交流新QQ群:414971585 iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. docum ...
- 在iOS中获取UIView的所有层级结构 相关
在iOS中获取UIView的所有层级结构 应用场景 在实际 iOS 开发中,很多时候都需要知道某个 UI 控件中包含哪些子控件,并且分清楚它们的层级结构和自个的 frame 以及 bounds ,以便 ...
- iOS中获取本地通讯录联系人以及汉字首字母排序
iOS中获取手机通讯录中的联系人信息: /*** 加载本地联系人*/ - (void)loadLocalContacts { //新建一个通讯录类 ABAddressBookRef addressBo ...
- iOS Orientation获取
[iOS Orientation获取] 1.[[UIDevice sharedInstance] orientation] 必须调用beginGeneratingDeviceOrientationNo ...
- iOS UIWebView 获取内容实际高度,关闭滚动效果
本文转载至 http://my.oschina.net/Khiyuan/blog/341535 iOS UIWebView 获取内容实际高度,关闭滚动效果 近期做东西,将 UIWebView 嵌套 ...
- iOS 日志获取和实时浏览器显示日志
https://juejin.im/entry/576252855bbb500063e51c7d iOS 日志获取和实时浏览器显示日志
- IOS中获取各个文件的目录路径的方法和NSFileManager类
转自:http://blog.sina.com.cn/s/blog_5fb39f910101di92.html IOS中获取各种文件的目录路径的方法 iphone沙箱模型的有四个文件夹,分别是什么,永 ...
随机推荐
- SQLSERVER CROSS APPLY 与 OUTER APPLY 的应用
日常开发中遇到多表查询时,首先会想到 INNER JOIN 或 LEFT OUTER JOIN 等等,但是这两种查询有时候不能满足需求.比如,左表一条关联右表多条记录时,我需要控制右表的某一条或多条记 ...
- oracle忘记密码,修改密码
1:输入命令: sqlplus /nolog ,进入oracle控制台,并输入 conn /as sysdba;以DBA角色进入.2:若修改某一个用户密码, 修改用户口令 格式为:alter user ...
- Linux automake命令
1)automake 使用教程 http://loftor.com/archives/automake.html 2)configure.in Makefile.am解析 http://blog.cs ...
- linq join一些忘记的操作
- 不要怂,就是GAN (生成式对抗网络) (三):判别器和生成器 TensorFlow Model
在 /home/your_name/TensorFlow/DCGAN/ 下新建文件 utils.py,输入如下代码: import scipy.misc import numpy as np # 保存 ...
- 购买阿里云的云服务器时选择镜像centos时应该选择哪个版本
购买阿里云的云服务器时选择镜像centos时应该选择哪个版本 方法/步骤首先,我们要清楚的便是每个系统之间的差别,以及在阿里云上的差别:1. Windows1.1) 系统内含正版激活.1.2) 适合于 ...
- redhat6.7在线安装postgresql9
原文:http://wandejun1012.iteye.com/blog/2015777 1.安装postgresql9.0 yum 仓库 rpm -i http://yum.postgresql. ...
- Linux的磁盘分区(三)
RAID 廉价冗余磁盘阵列 Redundant Arrays of Inexpensive Disks 不同级别的RAID功能.特性各不相同 对比项 RAID0 RAID1 RAID10 RAID5 ...
- (简单的物理题)Bungee Jumping
链接: http://acm.hdu.edu.cn/showproblem.php?pid=1155 Time Limit: 2000/1000 MS (Java/Others) Memory ...
- Android通过xml生成创建View的过程解析
Android的布局方式有两种,一种是通过xml布局,一种是通过java代码布局,两种布局方式各有各的好处,当然也可以相互混合使用.很多人都习惯用xml布局,那xml布局是如何转换成view的呢?本文 ...