C++ 全栈知识体系C++ 全栈知识体系
✿导航
  • 基础
  • 函数
  • 知识点
  • IO框架
  • 新版本特性
  • 数据库原理
  • SQL语言
  • SQL - MySQL
  • NoSQL - Redis
  • NoSQL - ElasticSearch
  • 算法基础
  • 常见算法
  • 领域算法
  • 分布式算法
  • 数据结构与算法
  • 计算机网络
  • 操作系统
  • 计算机组成
  • 开发
  • 测试
  • 架构基础
  • 分布式系统
  • 微服务
  • 中间件
  • 概念
  • 理论
  • 架构设计原则
  • 设计模式
  • 协议
  • 技术选型
  • 编码规范
  • 流水线构建 - CI/CD
  • 知识点 - Linux
  • 网站 - Nginx
  • 容器化 - Docker
  • 容器编排 - Kubernetes
  • 服务网格 - Service Mesh Istio
  • 常用快捷键 - Shortcut
  • 工具使用 - Tools
  • 开源项目
  • 学习项目
  • 个人项目
  • 项目开发
  • 项目Idea
  • 并发
  • 部署
  • 分布式
  • 知识
  • 问题
  • 编程语言与技术
  • 系统与架构
  • 软件开发实践
  • 数据处理与应用设计
  • 个人
  • 产品
  • 团队
  • 知识体系
  • Vue
关于
✿导航
  • 基础
  • 函数
  • 知识点
  • IO框架
  • 新版本特性
  • 数据库原理
  • SQL语言
  • SQL - MySQL
  • NoSQL - Redis
  • NoSQL - ElasticSearch
  • 算法基础
  • 常见算法
  • 领域算法
  • 分布式算法
  • 数据结构与算法
  • 计算机网络
  • 操作系统
  • 计算机组成
  • 开发
  • 测试
  • 架构基础
  • 分布式系统
  • 微服务
  • 中间件
  • 概念
  • 理论
  • 架构设计原则
  • 设计模式
  • 协议
  • 技术选型
  • 编码规范
  • 流水线构建 - CI/CD
  • 知识点 - Linux
  • 网站 - Nginx
  • 容器化 - Docker
  • 容器编排 - Kubernetes
  • 服务网格 - Service Mesh Istio
  • 常用快捷键 - Shortcut
  • 工具使用 - Tools
  • 开源项目
  • 学习项目
  • 个人项目
  • 项目开发
  • 项目Idea
  • 并发
  • 部署
  • 分布式
  • 知识
  • 问题
  • 编程语言与技术
  • 系统与架构
  • 软件开发实践
  • 数据处理与应用设计
  • 个人
  • 产品
  • 团队
  • 知识体系
  • Vue
关于
  • 并发

    • 并发 - 各类锁的应用场景
  • 部署

    • 部署 - 蓝绿部署、AB测试、灰度发布
  • 分布式

    • 分布式 - 单元化技术架构
    • 分布式 - Distributed Lock Manager
  • 知识

    • 知识 - 服务网格
    • 知识 - 共享单车背后技术
    • 知识 - 软件架构模式
    • 知识 - 同源策略和跨域
    • 知识 - 看门狗和喂狗机制
    • 知识 - 时区和时间戳
    • 知识 - 裸机服务器和虚拟机(VM)服务器
    • 知识 - 负载均衡
  • 问题

    • 问题 - 资源占用(top命令)
    • 问题 - 跟踪进程栈(pstack命令)
    • 问题 - 数据库与缓存不一致如何解决
    • 问题 - 如何解决三高

知识 - 时区和时间戳

时区和时间戳。

  • UTC时间与本地时

参考资料

  • 深入理解GMT,UTC和Unix时间戳

格林威治标准时间 GMT

根据维基百科,格林威治标准时间(Greenwich Mean Time)是伦敦格林威治皇家天文台计算的平均太阳时间,但是由于在过去的不同时期,它的计算方法有所不同,包括从中午开始计算; 因此,除非给出上下文,否则它不能用于指定准确的时间。英国经常将GMT用作协调世界时(UTC)的同义词。对于导航,它被认为等效于UT1(即现代的平均经度为0°的太阳时间); 但是此含义与UTC的差异最多可以达到0.9 秒。因此,术语GMT不应用于某些需要精确度的技术目的。

简单地说,GMT由于计算精度、历史算法等问题,有一定的确定性和不准确性,在精度高的场合不合适,所以现在逐渐被UTC取代,比如在Java中,默认的时间就是UTC。

协调世界时间 UTC

协调世界时(Coordinated Universal Time)是世界各地用来调节时钟和时间的主要时间标准,定义为**:位于0°经度的平均太阳时间,是格林威治标准时间(GMT)的后继者**。所以UTC也是太阳日计日方法。自1960年1月1日开始在世界范围内进行时间和频率传输的协调,并于1963年首次被正式采纳为CCIR 374建议书“标准频率和时间信号发射”。

UTC,即协调世界时。UTC是以原子时秒长为基础,在时刻上尽量接近于GMT的一种时间计量系统。为确保UTC与GMT相差不会超过0.9秒,在有需要的情况下会在UTC内加上正或负闰秒。UTC现在作为世界标准时间使用。

所以,UTC与GMT基本上等同,误差不超过0.9秒。

Unix 时间戳(Unix Time Stamp)

Unix时间戳是一种跟踪时间(以秒为单位)的方式。 此计数从1970年1月1日UTC的Unix Epoch开始(1970年01月01日 0:00:00)。 因此,unix时间戳仅仅是特定日期与Unix纪元之间的秒数。 所以,这个时间是不考虑任何的计算方式的,非常简单有效的,只表示当前时间与开始时间的秒差,这样无论任何作用者,无论身在何处,作用何种计时方式,该时间点在技术上都是一样的。

对于当地使用者,只需要进行一次转换即可变为当前时间。这种计时对于计算机系统在在线和客户端动态和分布式应用程序中跟踪和排序日期信息非常有用。所以被广泛使用在Unix操作系统中(后来的Linux,Windows等系统也都支持此计时方式)。

UTC时间与本地时

UTC + 时区差 = 本地时间

时区差东为正,西为负。在此,把东八区时区差记为 +0800,

UTC + (+0800) = 本地(北京)时间

那么,UTC = 本地时间(北京时间))- 0800

扩展:时间是如何测量的

Last Updated:
Contributors: klc407073648
Prev
知识 - 看门狗和喂狗机制
Next
知识 - 裸机服务器和虚拟机(VM)服务器