从不浪费时间的人,没有工夫抱怨时间不够。 —— 杰弗逊

第一句话:时间戳

时间不分东西南北、在地球的每一个角落都是相同的。他们都有一个相同的名字,叫时间戳。时间戳 指的就是Unix时间戳(Unix timestamp)。它也被称为Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。

关于 时间戳, 你可以看在线时间戳

第二句话:时区

时间戳 在地球的每一个角落都是相同的,但是在相同的时间点会有不同的表达方式,所以有了另外一个时间概念,叫时区。这里的时区与地区不是同一个概念,例如我们所在的时区叫 东八区 。

在设备中,可以自己手动的切换当前的系统时区:

时区设置

你会发现:当你选在不同的时区,你的当前时间是不一样的。

第三句话:时间戳与时区在Code中应用

一、时间戳 是不会跟着 时区 的改变而改变

可以用代码来证明这一点:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

// 系统时区

NSTimeZone* timeZone = [NSTimeZone systemTimeZone];

NSLog(@"系统当前的时区: %@", timeZone.name);

// 返回的单位是 秒

NSTimeInterval timeInterval = [[NSDate date] timeIntervalSince1970] ;

NSLog(@"当前时间戳:%f", timeInterval);

}

你会发现,不管怎么切换时区,时间戳总是一致。可以实时的参照在线时间戳进行验证。

二、不同 时区 间的时间切换

这个需求并不是空穴来风,在很多的app中都会用到的。比如根据服务器返回的时间与当前时间进行一个比较,这里就会有多种可能性,主要体现在服务器返回时间的方式,比如直接返回一个固定时间的字符串,比如:2017-06-14 22:55:23。然后接口的同事告诉你这个是 东八区 时间。让你自己转成当前 时区 的时间。

1、将当前 时区 的时间转成不同 时区 的时间

不管当前设备的 时区 在什么地方,都将其转成 东八区 的时间格式。代码如下:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

// 系统时区,默认就是当前的时区

NSTimeZone* timeZone = [NSTimeZone systemTimeZone];

NSLog(@"系统当前的时区: %@", timeZone.name);

// 获取当前时间

NSDate* date = [NSDate date];

// 时间格式

NSDateFormatter * dateFormatter = [[NSDateFormatter alloc]init];

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSString* now = [dateFormatter stringFromDate:date];

NSLog(@"系统当前时间显示: %@", now);

// 将时区设置成 东八区

[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:8*3600]];

// 设置后的时间显示

now = [dateFormatter stringFromDate:date];

NSLog(@"东八区的当前时间显示: %@", now);

}

打印结果如下:

打印完美结果

2、2017-06-08T11:29:29.209Z

当有一天你发现服务器返回这样的时间,请不要束手无策,因为这个时间格式就已经明确的将时区也告诉你了,你只需要这样做,就能随时随地的转成当前时区的时间格式:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

// 时间字符串 (带有时区信息)

NSString* timeTEXT = @"2017-06-08T11:29:29.209Z";

// 对应时间格式

NSString* formateTEXT = @"yyyy-MM-dd'T'HH:mm:ss.SSSZ";

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat:formateTEXT];

// 获取当前对应时区的时间

NSDate* curDate = [dateFormatter dateFromString:timeTEXT];

NSLog(@"对应当前时区的时间: %@", curDate);

}

上面的代码,没有看到有 时区 间的切换,但是是正确的。因为timeTEXT已经自带时区 信息。然而 NSDateFormatter 对象默认是当前设备的 时区。所以 curDate 就是当前设备的时间。

3、想了一下,没有其它的需要补充了,都太简单。

谢谢~

android 时间戳 时区,三句话理解时区与时间戳相关推荐

  1. Android 如何清空 Canvas 清屏只需三句话

    android开发--Canvas清屏只需三句话 分类: Android开发 2012-11-28 21:51 4269人阅读 评论(19) 收藏 举报 这两三天一直在研究这个问题,今天终于成功了.我 ...

  2. android开发--Canvas清屏只需三句话

    这两三天一直在研究这个问题,今天终于成功了.我最终要实现的效果是,类似于照相机照相时,第一次按下按键,会出现矩形框框住人脸,这时我不想照相,再次按下会再次框出人脸,重新画个新的矩形框. 就这么简单. ...

  3. 生活感悟——我对三句话的理解

    生活感悟-我对三句话的理解 brycezou@163.com 1.不要试图从一开始就建立一个完美的数据仓库 说这句话是有前提的,那就是充分结合当前的业务和短期将来的业务,建立一个适用于现在和短期将来的 ...

  4. 三句话感受一本书,让脑子变聪明的7本书,每本只需理解3句话!

    三句话感受一本书,让脑子变聪明的7本书,每本只需理解3句话! 一.<学会提问> 批判性思维领域的"圣经" 信息爆炸的年代,尤其需要我们对信息的判断力. 三句话感受这本书 ...

  5. 面试者被公司粗暴对待,进门讲了三句话被赶出:包括一句你好

    对于职场上的人而言,找工作是一件比较扎心的事情,特别是在面试环节,内心是最为忐忑的.但是在面试过程中,一些面试者往往处于弱势的一方,用人单位是强势的一方.因此面试者有时候会受到一些不平等的对待,比如下 ...

  6. 深入浅出Spring Security(一):三句话解释框架原理

    三句话解释框架原理 整个框架的核心是一个过滤器,这个过滤器名字叫springSecurityFilterChain类型是FilterChainProxy 核心过滤器里面是过滤器链(列表),过滤器链的每 ...

  7. 吃透理财三句话人人都能成百万富翁

    财专家告诉我们:理财的最佳方式并非追求高超的金融投资技巧,只要你掌握正确的理财观念,并且持之以恒,若干年之后--人人都能成为百万富翁.  我每月到企业举办一小时的免费"理财讲座", ...

  8. 学做三件事、三句话、三乐、三不要

    学做三件事 1 .学会关门 即学会关紧昨天和明天这两扇门,过好每一个今天,每一个今天过得好,就是一辈子过得好. 2.学会计算 即学会计算自己的幸福和计算自己做对的事情.计算幸福会使自己越计算越幸福,计 ...

  9. 职场低情商就这三句话

    蓝豹职业辅导:专注简历制作,就业辅导,模拟面试,职业规划专家! 职场低情商就这三句话 职场低情商就这三句话,职场中想要步步高升,千万不能说这三句话, 第一,不要说不知道, 如果领导问你一个无法回答的问 ...

最新文章

  1. HTML4如何让一个DIV居中对齐?float输入日志标题
  2. 6-ML的可行性(3)
  3. python培训班时间 费用-Python培训班大概多少钱?老男孩Python培训
  4. Java:Comparable接口
  5. python class类里给列表排序_python笔记:Class(类)
  6. C#服务器编程:WebService、Ajax与回调函数(一)
  7. 编程时程序无错却崩溃_人间真实:程序员的 60 个崩溃瞬间!
  8. 【CentOS】NFS服务器的安装与配置
  9. 灰色滤镜,网页灰色代码
  10. 查询工商单位注册信息 平台
  11. C语言读取GPT分区信息
  12. 解决HC05蓝牙模块主从配对失败及AT模式设置方案
  13. python 知乎 合并 pdf_有什么比较好的 PDF 分割、合并软件?
  14. 行程卡是怎么记录行程的?
  15. 萨特《禁闭》由他人来解读“他人即地狱”
  16. 如何认知MOSFET、IGBT等模拟功率器件
  17. 【python】算法设计:回文素数
  18. Python - 获取当前目录/上级目录/上上级目录
  19. 造纸行业仍处于“去库存”阶段
  20. 使用python抓取100张人脸图片

热门文章

  1. 远程连接mysql数据库注意点记录
  2. java 读取properties文件
  3. mysql导入数据load data infile用法整理
  4. java文件处理之压缩,分割
  5. 堡垒机CrazyEye安装脚本
  6. VMware Workstation 虚拟机性能优化指南
  7. HDOJ1861 游船出租
  8. Windows Server 2008 磐石风暴系列课程
  9. Cisco Catalyst 4500
  10. 通过指针便利图像元素