文档章节

ios 日期转换 时区问题

十八郎
 十八郎
发布于 2016/11/08 11:33
字数 473
阅读 49
收藏 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]];
相当于逻辑上把我们东八区当做了标准时间使用。

 

© 著作权归作者所有

共有 人打赏支持
上一篇: UIScrollViewDelegate
下一篇: GCD使用介绍
十八郎
粉丝 4
博文 85
码字总数 29687
作品 0
昌平
iOS工程师
私信 提问
iOS时间那点事--NSDateFormatter

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

JustBen
2013/08/07
0
1
iOS 8.1.3 发布,减少软件更新所需储存空间

苹果今天发布了 iOS 8.1.3 正式版,修正了各种错误包括部分用户无法在“信息”和 FaceTime 中输入 Apple ID 密码的问题,以及解决了导致 Spotlight 停止显示应用程序结果的问题。还有,iPad ...

oschina
2015/01/28
2.3K
4
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

没有更多内容

加载失败,请刷新页面

加载更多

传播正能量——《海南英才》阅读的读后感2200字

传播正能量——《海南英才》阅读的读后感2200字: 新华社记者12月8日从公安部获悉,针对自媒体“网络水军”敲诈勒索等违法犯罪活动突出问题,今年以来,公安部组织各地公安机关依法深入开展侦...

原创小博客
12分钟前
1
0
Confluence 6 对一个空间进行归档后产生的影响

空间 如果一个空间被归档: 将不会在查找结果中显示,除非你选择 在归档空间中查找(Search archived spaces)。如果没有归档空间的话,这个功能是隐藏的。 页面和内容将不会在 Confluence 的...

honeymose
15分钟前
2
0
java框架学习日志-2

上篇文章(java框架学习日志-1)虽然跟着写了例子,也理解为什么这么写,但是有个疑问,为什么叫控制反转?控制的是什么?反转又是什么? 控制其实就是控制对象的创建。 反转与正转对应,正转...

白话
今天
4
0
Integer使用双等号比较会发生什么

话不多说,根据以下程序运行,打印的结果为什么不同? Integer a = 100;Integer b = 100;System.out.println(a == b);//print : trueInteger a = 200;Integer b = 200;System.out.pr...

兜兜毛毛
昨天
10
0
CockroachDB

百度云上的CockroachDB 云数据库 帮助文档 > 产品文档 > CockroachDB 云数据库 > 产品描述 开源NewSQL – CockroachDB在百度内部的应用与实践 嘉宾演讲视频及PPT回顾:http://suo.im/5bnORh ...

miaojiangmin
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部