为啥人类从1970年1月1日开始计时?

从秒到毫秒:揭秘时间戳转换中的1970年陷阱与解决方案 本文深入解析了时间戳转换中常见的‘1970年陷阱’,其根源在于秒与毫秒的单位混淆。文章通过对比Java的System.currentTimeMillis()与常见十位秒级时间戳,揭示了SimpleDateFormat等API默认处理毫秒数的原理,并提供了乘以1000L的核心解决方案及跨语言防坑指南,帮助开发者彻底规避此类错误。 阅读详情

人类操作系统元年

目前,人类计算机通过一个64位整数来存储时间,它表示从西方时间(伦敦)1970年1月1日0点开始到现在所经过的毫秒数,比如:

> Date.now()

< 1553735643986

为啥从1970年初开始计时呢,有一个原因是,现代人类操作系统的共同祖先----unix是在1970年正式诞生的,1970年可称为"UNIX元年"。我们都知道 ,硬件计时必须要常驻机器的OS来维护,所以,当UNIX出现以后,各种需要调用时间api的应用才相应出现,对于目前来说也是一样,软件史上的重要事件都发生在1970年之后,这个时间点不大不小正正好,1970年之前的时间点可以使用负数表示。

还有一个原因,最初计算机操作系统是32位,时间也就用32位表示。32位能表示的最大值是2147483647。另外1年365天的总秒数是31536000,2147483647/31536000 = 68.1,也就是说32位能表示的最长时间是68年,而实际上到2038年01月19日03时14分07秒,便会到达最大时间,过了这个时间点,所有32位操作系统时间便会变为10000000 00000000 00000000 00000000,也就是1901年12月13日20时45分52秒,这样便会出现时间回归的现象,很多软件便会运行异常了。

到这里,我想问题的答案已经出来了:因为用32位来表示时间的最大间隔是68年,而最早出现的UNIX操作系统考虑到计算机产生的年代和应用的时限综合取了1970年1月1日作为UNIX TIME的纪元时间(开始时间),至于时间回归的现象相信随着64为操作系统的产生逐渐得到解决,因为用64位操作系统可以表示到292,277,026,596年12月4日15时30分08秒,这个时间已经是千亿年以后了。
 

Worldwide Scope的全局变量

全局变量都很熟悉,比如浏览器窗口中的window对象,非常实用。

我们目前接触到的全局变量都是进程级别或者更大一点就是系统级别的,但有没有想过有一个全局变量是“全球”级别的,也就是“全球对象”,而且不需要通过互联网同步!没错,这就是Date对象:无论生在何处,相距多远,你们总是share一个相同的数据:当前的时间(假设宇宙时间均匀(●'◡'●))。那利用全球对象Date能做哪些不可描述的事情呢?比如在断网的情况下进行同步任务;或者将Date作为种子生成相同的2个随机数。。。事实上我们一直在利用‘时间’来揣测对方的情况。

机场数据治理系列介绍(1):机场行业数据中台中的数据管理顶层设计方案 民航机场行业的数据中台中,有关数据管理顶层设计方案需要结合机场行业的业务特点和技术需求进行具体的设计,今日我们简要考量设计提供一个参考方案: 阅读详情

相关推荐

C# WinForm和Sherlock进行对接

文章目录 前言 一、使用步骤 二、使用步骤 1.引入库 2.读入数据 总结 前言 本人公司最近在做一款瑕疵检测的视觉项目,项目中利用Sherlock从相机中取图和对图像进行视觉处理,然后将图像和数据传输到项目中。这过程中软件需要和Sherlock进行图像和数据的传递,这就需要WinForm和Sherlock进行对接,但我在网上查找了许久能用上的资料十分有限,所以我决定写下这篇文章,来做一次总结,同时也希望能帮助到同样在为此问题困扰的你。 一、使用步骤 废话不...

adminmmrt的博客 3221

为什么时间戳是从 1970 年 1 月 1 日 00:00:00开始计算?底层原理是什么?

这种表示方式的好处是,它不依赖于时区,可以在全球范围内使用,而且可以用一个整数来表示一个时间点,方便了计算机对时间的处理。底层原理是,Unix 操作系统设计者认为从 1970 年 1 月 1 日 00:00:00 UTC 开始的时间,是计算机操作中最基础的时间,而且这个时间点之前的时间很少会被使用,所以选择这个时间点作为时间戳的起点。时间戳从 1970 年 1 月 1 日 00:00:00 开始计算,是因为这个时间点被 Unix 系统选为时间戳的起点,也被称为 Unix 时间戳起点。

长风破浪会有时的博客 2881

硕士论文排版救星:用Mathtype一键搞定所有公式格式(附样式预设文件)

本文详细介绍了如何使用Mathtype的样式预设和批量格式化功能,快速统一硕士论文中的公式格式。通过创建标准样式预设文件和一键批量处理,解决公式字体、大小、间距不统一的问题,确保符合学术规范要求,大幅提升论文排版效率。

weixin_30772105的博客 942

为什么计算机时间要从1970年1月1日开始算起

为什么计算机时间要从1970年1月1日开始算起1、最懒的解释 很多编程语言起源于UNIX系统,而UNIX系统认为1970年1月1日0点是时间纪元,所以为偶们常说的UNIX时间戳是以1970年1月1日0点为计时起点时间的。 2、深入的了解 最初计算机操作系统是32位,而时间也是32为表示。System.out.println(Integer.MAX_VALUE); 214

kang19940713的博客 6万+

手把手教你校准垂起固定翼(VTOL)遥控器与电调:从零到飞的完整流程

本文详细介绍了垂起固定翼(VTOL)遥控器与电调的校准流程,从基础认知到飞行前检查,涵盖遥控器通道配置、电调校准、舵机方向调整等关键步骤。通过图文并茂的指导,帮助无人机爱好者安全完成VTOL调试,确保首飞成功。特别强调多旋翼模式、过渡模式和固定翼模式的设置要点,适合新手和进阶用户参考。

jenkins8butler的博客 361

Unified Access Control:从NAS到RRC的5G接入控制全流程解析

本文深入解析了5G统一接入控制(Unified Access Control)的全流程,从NAS到RRC的协同工作机制。通过身份核验、业务分类和动态决策三个核心步骤,UAC实现了智能调度和弹性决策,确保海量设备接入时的网络稳定性。文章详细介绍了USIM卡的身份凭证体系、NAS层的业务分类引擎以及RRC层的动态决策机制,并提供了实战案例和常见问题排查方法。

weixin_30855099的博客 591

从1970年开始的毫秒数的时间戳被叫做什么?

时间戳是自 1970 年 1 月 1 日(08:00:00 GMT)至当前时间的总秒数,它也被称为 Unix 时间戳。 时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。使用数字签名技术产生的数据, 签名的对象包括了原始文件信息、 签名参数、 签名时间等信息。广泛的运用在知识产权保护、 合同签字、 金融帐务、 电子报价投标、 股票交易等方面。 时间戳是指格林威治时间1970年01月01日00时0

诚的博客 4784

本地部署 Bolt.new - 小学生都能轻松搭建AI编程环境

本地部署 Bolt.new - 小学生都能轻松搭建AI编程环境

engchina的专栏 8629

到底为什么时间戳是从 1970 年 1 月 1 日开始计算?底层原理是什么?

通过将时间表示为自 1970 年 1 月 1 日以来经过的秒数,我们可以方便地进行各种时间相关的操作。

长风破浪会有时的博客 3179

YOLO+OpenCV强强联手:高精度跌倒检测技术实战解析

(0, 1), (0, 2), (1, 3), (2, 4), # 脖子和头部(3, 5), (5, 6), (5, 7), (7, 9), (5,11),# 左臂(4,6), (6, 12), (6,8) ,(8,10),# 右臂(11, 12), (11, 13), (13, 15), #左腿(12, 14), (14, 16) #右腿keypoints是检测到的人体关键点数据,frame是图像帧,boxes是检测到的边界框信息。定义了人体关键点之间的连接关系,用于绘制人体骨架。

yolo模型训练找我,AI游戏合作找我 2318

基于Simulink的基于MPC的实时ZMP约束步态优化仿真

本文完成了基于Simulink的MPC实时ZMP约束步态优化仿真,实现了:✅ 建立3D-LIPM预测模型✅ 设计带ZMP可行域约束的MPC优化器✅ 实现闭环实时求解与扰动抑制✅ 验证强鲁棒性与安全性✅ 为人形机器人野外行走、人机交互提供先进控制方案。

xiaoheshang_123的博客 86

计算机时间为什么从1970年开始算起?

Unix时间戳以1970年1月1日00:00:00 UTC为起点,主要源于早期Unix系统的技术限制和设计需求。32位有符号整数的时间范围决定了选择1970年可确保足够使用到2038年(避免过早溢出),同时便于底层计算和存储。历史背景上,1970年接近Unix开发时期,且UTC基准简化了跨平台时间处理。相比之下,其他系统如Windows使用1601年起点,Mac OS采用1904年变种。虽然2038年问题(32位溢出)仍需应对,但64位方案已基本解决。这一设定因Unix的广泛影响成为行业标准,体现了早期计算

行知SLAM 3544

为Skill开发的python脚本一些经验

其中SKILL.md的职责是调度,不是实现,这里面要写清楚如下三点: 脚本会自动生成: 如果缺少依赖: 这样就实现了分工,脚本用来完成格式转换、统计计算、文件生成;Claude做理解用户意图、选择参数、解释结果、处理特殊需求等。Claude 调用脚本时,所有参数都通过命令行传递,本质上都是字符串。但在脚本内部,应该明确转换成正确类型,而不是全程当字符串用。因此,强烈建议使用argparse里声明正确的type,如下: 的 参数会自动做转换和报错,比在代码里手动 更安全,报错信息也更清晰。特别注意如下

Criss@陈磊 853

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

关于1970-1-1 00:00.000的知识

现在计算机和一些电子设备时间的计算和显示是以距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量为标准的,如1970-1-10 20:47 偏移量为2724441632毫秒,出现类似字样说明时间被初始化了。小知识:格林威治标准时间GMT许多人都知道两地时间表简称为GMT或UTC,而世界时区表则通称为World Time,那么GMT与UTC的实质

tianzizhi的专栏 5万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

为什么计算机和一些电子产品的时间选择在1970.1.1

现在计算机和一些电子设备时间的计算和显示是以距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量为标准的,如1970-1-10 20:47 偏移量为2724441632毫秒,出现类似字样说明时间被初始化了。 小知识:格林威治标准时间GMT许多人都知道两地时间表简称为GMT或UTC,而世界时区表则通称为World Time,那么GMT...

anwu0979的博客 1941

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

1970年1月1日,这是编程语言和数据库开始记时日

编程语言和数据库开始记时现在大多数操作系统都是32位的 32位最大值是2的32次方减一,也就是说这个数字是2147483647 ,一年有 365天的总秒数为31536000,所以计算机的计时周期是 2147483647/31536000=68.1年。32位操作系统能表示的最长时间是68.1年而实际上到2038年01月19日03时14分07秒就会到达最大时间点。32位的时间会变成10000000 0

fengren_520的专栏 1306

1970 qt unix时间_想穿越,时间戳打好了吗?

大家好,我是中兴文档小蓝人。前几天,当我在写通信科普文章的时候,突然有一种时空错乱的感觉,恍惚间感觉这个场景十分熟悉,好像在不久之前,同样的电脑,同样的微风拂面,同样的我,做着同样的事情。就像是梦境与现实重叠,又像是时光河流在倒卷。各位小伙伴们,你们有遇到过这种情况吗?平行时空 or 世界Bug有人说,这是因为有平行时空或者多元空间的存在。在另外的一个时空中还有一个你,他经历过相同的事情...

weixin_42113754的博客 509

【转】计算机中时间的表示和存储

为什么计算机的计时是从1970年1月1日00:00:00开始的呢?        以前的Unix计算机中存储时间,是以32位来存储的。因为用32位来表示时间的最大间隔是68年,而最早出现的UNIX操作系统考虑到计算机产生的年代和应用的时限综合取了1970年1月1日作为UNIX TIME的纪元时间(开始时间),将1970年作为中间点,向左向右偏移都可以照顾到更早或者更后的时间,因此将1970年1月...

weixin_33962923的博客 921

从1970年秒数到时间计算:C语言时间处理全解析与避坑指南

时间处理是计算机编程中的基础且关键的技术领域,其核心在于理解计算机如何表示和计算时间。计算机通常使用Unix时间戳(time_t)作为时间的机器表示,它记录了自协调世界时(UTC)1970年1月1日以来的秒数。这种连续、算术化的表示便于进行差值计算,例如计算耗时或日期间隔。然而,将机器时间转换为人类可读的日历时间(如年、月、日)或进行反向转换时,会涉及时区、夏令时、闰年等复杂因素,这正是时间处理的难点与价值所在。在实际工程中,无论是日志记录、分布式系统同步,还是处理像“计算18岁生日天数”这类具体业务需求,

weixin_33391446的博客 321

关于1970-1-1 00:00.000的知识【转】

转自:http://blog.youkuaiyun.com/tianzizhi/article/details/4547373 现在计算机和一些电子设备时间的计算和显示是以距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量为标准的,如1970-1-10 20:47 偏移量为2724441632毫秒,出现类似字样说明时间被初始化了。小知识:格林威治标准时...

weixin_34261415的博客 333
上一篇: 我的歌单
下一篇: 《三体》与Taylor展开式的无限遐想
xosg
xosg 领域专家: 网络协议与安全技术领域 领域专家: 网络协议与安全技术领域
博客等级 码龄9年 1986粉丝 864原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xosg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值