文档章节

ios 日期转换 时区问题

十八郎
 十八郎
发布于 2016/11/08 11:33
字数 473
阅读 45
收藏 0

首先需要认识几个概念
1、NSDate:官方描述的是
                    NSDate objects encapsulate a single point in time, independent of any particular calendrical system or time zone. Date objects are immutable, representing an invariant time interval relative to an absolute reference date
                 翻译: NSDate对象封装一个时间点,独立于任何特定的历法的系统或时区。日期对象是不可变的,代表一个不变的时间间隔相对于绝对引用日期
          所以要明白,NSDate存放的是一个UTC时间点,和时区啊,地点啊都没有关系,而我们所说的时区是为了人们统一标准,对时间的一个修饰,是一个理念的东西,不要误认为时区是时间的一部分,时区上只不过是约束了变现形式,实际上不管将时区设置多少,某一时间点距离1970年那个时间点是不变的。
所以NSDate打印出来永远是基于0时区的,和我们看到的相差8小时

2、理解了上面开始进入正式话题-转换
    a、NSDate 转 NSString

打印出来差了八小时,是因为NSDate存放的是UTC标准时间,而且你也无法改变NSDate存放的形式
使用NSDateFormatter来格式化输出

NSDateFormatter创建后默认设置是和系统一样的,所以转换后格式正确

    b、NSString 转 NSDate

打印结果相差八小时,不要认为错了,其实是它将你的时间按照本地时区转化为标准时间存入了NSDate对象中
,没看到后面有+0000 而不是+0800吗。
但是我们有时候就是想要NSDate打印出来是我们的东八区该怎么办呢,如下:

设置:[formate setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:8]];
相当于逻辑上把我们东八区当做了标准时间使用。

 

© 著作权归作者所有

共有 人打赏支持
十八郎
粉丝 4
博文 85
码字总数 29687
作品 0
昌平
iOS工程师
iOS时间那点事--NSDateFormatter

iOS时间那点事 NSDateFormatter NSDateFormatter是NSFormatter的子类,另,NSFormatter的用途是“将数据在字符串与特定类型的对象之间转换”,目前NSFormatter只有两个子类NSNumberFormatter...

JustBen
2013/08/07
0
1
iOS时间那点事--NSTimeZone

iOS时间那点事 NSTimeZone **时区是一个地理名字,是为了克服各个地区或国家之间在使用时间上的混乱。 基本概念: GMT 0:00 格林威治标准时间; UTC +00:00 校准的全球时间; CCD +08:00 中国标...

JustBen
2013/08/08
0
0
周记2——ios的日期格式bug

  转眼又到了周末,转眼又要上班,转眼...大概这就是一眼万年的意思吧。    这周继续IM(即时聊天),项目用的是LayIM移动端改装的,仅仅“借用”了一个聊天窗口。由于是内嵌App的页面,...

辛月
08/12
0
0
一篇文章吃透iOS、JS的时间日期(Date, Calendar, Locale, TimeZone)

iOS 时间相关类 NSDate - 表示一个绝对的时间点。 NSCalendar - 代表一个特定的日历,例如公历或者希伯来日历。它提供了一系列基于日期的计算,并且可以让你在"NSDate"和"NSDateComponents"对...

奶爸码农
05/09
0
0
IOS下WEBVIEW 的javascript数组与json定义 及交互

最近在折腾IOS新闻浏览客户端,当中需要用到webview传递JSON数据到IOS上,然后在IOS上解析。刚入门IOS不久,看了不少的书,但都是囫囵吞枣。在开发过程中,遇到不少问题。 开发环境 mac mini...

GIFCOOL
2013/08/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSX | SafariBookmarksSyncAgent意外退出解决方法

1. 启动系统, 按住⌘-R不松手2. 在实用工具(Utilities)下打开终端,输入csrutil disable, 然后回车; 你就看到提示系统完整性保护(SIP: System Integrity Protection)已禁用3. 输入reboot回车...

云迹
今天
4
0
面向对象类之间的关系

面向对象类之间的关系:is-a、has-a、use-a is-a关系也叫继承或泛化,比如大雁和鸟类之间的关系就是继承。 has-a关系称为关联关系,例如企鹅在气候寒冷的地方生活,“企鹅”和“气候”就是关...

gackey
今天
4
0
读书(附电子书)|小狗钱钱之白色的拉布拉多

关注公众号,在公众号中回复“小狗钱钱”可免费获得电子书。 一、背景 之前写了一篇文章 《小狗钱钱》 理财小白应该读的一本书,那时候我才看那本书,现在看了一大半了,发现这本书确实不错,...

tiankonguse
今天
4
0
Permissions 0777 for ‘***’ are too open

异常显示: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ......

李玉长
今天
5
0
区块链10年了,还未落地,它失败了吗?

导读 几乎每个人,甚至是对通证持怀疑态度的人,都对区块链的技术有积极的看法,因为它有可能改变世界。然而,区块链技术问世已经10年了,我们仍然没有真正的用上区块链技术。 几乎每个人,甚...

问题终结者
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部