美文网首页ios developers
学习笔记:iOS的时间汇总

学习笔记:iOS的时间汇总

作者: 双鱼子曰1987 | 来源:发表于2021-06-21 16:39 被阅读0次

一、概述

  • GMT:Greenwich Mean Time缩写,表示格林尼治的时间基准。
  • UTC:Coordinated Universal Time 缩写,表示原子钟时间基准。

二、iOS的各种时间api区别

2.1、第一种受系统时间影响,可能会被用户修改

  • NSDate,以UTC为标准,和时区和文化无关。

  • CFAbsoluteTimeGetCurrent(),以GMT为标准,等同于 [[NSDate date] timeIntervalSinceReferenceDate]

  • gettimeofday,获取的是Unix time(是以UTC为基准时间,当前时间距离基准点偏移的秒数)。

  • sysctl,可获取上次设备重启的Unix time时间。

2.2、第二种不受系统时间影响,与CPU计数有关

  • mach_absolute_time(),CPU已经运行的tick的数量,可达到纳秒级的精度。
    在每次手机重启之后,会重新开始计数;且iPhone锁屏进入休眠之后tick也会暂停计数。

  • CACurrentMediaTime(),内部使用mach_absolute_time()并转化成秒,只受设备重启和休眠影响。

/* Returns the current CoreAnimation absolute time. This is the result of
 * calling mach_absolute_time () and converting the units to seconds. */
CA_EXTERN CFTimeInterval CACurrentMediaTime (void)

三、使用场景

1、显示当前系统时间

一般使用NSDate即可,结合NSDateFormatter转化为不同显示格式的时间。

2、代码执行时间测量

主要考虑两个要求:1、精读要高;2、API本身几乎不耗CPU时间。
基于上面两点,更合适的选择是mach_absolute_time(),精度到毫秒即可 。

3、客户端和服务器的时间同步

  • 常用算法:currSvrTime = lastSvrTime + (currlocalTime - lastLocalTime)
    应用本地时间的获取,可以选择不受用户修改影响的mach_absolute_time() 或者 CACurrentMediaTime()

    注意:另种一种本地时间算法(待验证)


    image.png

参考

iOS关于时间的处理

相关文章

  • 学习笔记:iOS的时间汇总

    一、概述 GMT:Greenwich Mean Time缩写,表示格林尼治的时间基准。 UTC:Coordinat...

  • iOS超全开源框架、项目和学习资料汇总:UI篇

    iOS超全开源框架、项目和学习资料汇总:UI篇 iOS超全开源框架、项目和学习资料汇总:UI篇

  • 【Objective-c】_蓝牙开发

    ios蓝牙开发学习笔记(一)蓝牙概述 ios蓝牙开发学习笔记(二)central角色的实现 ios蓝牙开发学习笔记...

  • ios 资料大全

    一、IOS资料汇总 1.iOS 资料合集2.iOS超全开源框架、项目和学习资料汇总(3)网络和Model篇 二、I...

  • iOS最新面试题汇总(四)

    iOS最新面试题汇总:iOS最新面试题汇总(一)iOS最新面试题汇总(二)iOS最新面试题汇总(三)iOS最新面试...

  • iOS最新面试题汇总(三)

    iOS最新面试题汇总:iOS最新面试题汇总(一)iOS最新面试题汇总(二)iOS最新面试题汇总(三)iOS最新面试...

  • iOS最新面试题汇总(一)

    iOS最新面试题汇总:iOS最新面试题汇总(一)iOS最新面试题汇总(二)iOS最新面试题汇总(三)iOS最新面试...

  • iOS最新面试题汇总(二)

    iOS最新面试题汇总:iOS最新面试题汇总(一)iOS最新面试题汇总(二)iOS最新面试题汇总(三)iOS最新面试...

  • iOS Networking

    这里汇总了我上Udacity的课程iOS Networking所写下的笔记。笔记都是用试着向大家解释我所学的形式写...

  • 无标题文章

    IOS学习笔记 一

网友评论

    本文标题:学习笔记:iOS的时间汇总

    本文链接:https://www.haomeiwen.com/subject/bnczeltx.html