我被这个浏览了 746002 次的问题惊住了!(下)

简介: 我被这个浏览了 746002 次的问题惊住了!(下)

History has changed again...

历史再次发生了变化。

在个时区数据库里面,2014f 版本中,变化的时间已经移到了1900-12-31,现在只是一个 343 秒的变化。

343 秒?

不就是我们前面的 5 分 43 秒吗?

image.png

好了,现在时差能对上了,343 秒,但是时间还是没对上啊。

我们的测试时间 1900-01-01 08:00:00,他这里写的时间是 1900-12-31。

差了整整一年呢?

好,我们看他最后一次编辑的内容:

image.png

我个人理解他要表达的意思是这样的。

Java 为了在时区上统一标准,所以来了个一刀切的政策。

统一的标准就是让 UTC 时区下 1900 年之前的任何瞬间都是标准时间。

至于产生的时差嘛...

就在最开始的时候补上去吧。

所以,1900-01-01 00:00:00 加上 8 小时时差,是 1900-01-01 08:00:00,在这个基础上预先加上 27 年后来自 1927-12-31 那个午夜由于时间回拨带来的 343 秒。

1900-01-01 08:05:43,我个人认为就是这样来的。

而前面 stackoverflow 里面对应的那个程序,我们现在执行是输出 1,但是在 10 年前,输出结果确实是 353 。

就像我把程序改成这样:

image.png

最终的输出结果不是 1,而是 -342。

时间,发生了“倒流”。

好了,又是一个没啥卵用的知识点。

最后,再补充两个冷知识。

第一个是我在 jdk bug 列表里面追溯了一下,能找到最早提出相关问题的时间是 2005 年:

https://bugs.openjdk.java.net/browse/JDK-6281408


image.png

image.png

这个问题不会被修复,以避免任何兼容性问题。

意思就是:问题我知道了,但是这玩意不太好弄,bug 先变成 feature 吧,就先这样吧。

别问,问就是有历史原因在里面。

第二个冷知识是,前面提到的,时区在 1927 年发生了变化。

你知道为什么吗?

我在某网站上找到了这样的描述:

https://zh.wikipedia.org/wiki/%E4%B8%AD%E5%9C%8B%E6%99%82%E5%8D%80


image.png

1928 年,就是民国 17 年。

那一年,南昌起义爆发,中国人民解放军成立。

那一年,毛主线在井冈山建立农村革命根据地。

那一年,星星之火,已成燎原之势。

image.png

最后说一句

好了,看到了这里了,转发、在看、点赞随便安排一个吧,要是你都安排上我也不介意。写文章很累的,需要一点正反馈。

给各位读者朋友们磕一个了:

微信图片_20220428222651.png

目录
相关文章
|
9月前
|
IDE 程序员 开发工具
只用正版!教你5个方法,白嫖JetBrains家族的所有产品,包含:IntelliJ IDEA、PyCharm、WebStorm、CLion、Rider
程序员晚枫分享了5种官方认证的免费使用JetBrains家族产品的方法,包括内容创作者计划、开源项目支持、教育许可证、用户组支持和开发者认可计划。这些方法帮助个人开发者与小型团队合法获取强大开发工具,如IntelliJ IDEA、PyCharm等,降低开发成本,提升效率。同时提醒大家遵守使用规范,尊重知识产权。
1671 13
|
机器学习/深度学习 人工智能 自然语言处理
全新开源通义千问Qwen3上架阿里云百炼
Qwen3是Qwen系列大型语言模型的最新成员,作为混合推理模型,其旗舰版本Qwen3-235B-A22B在代码、数学和通用能力测试中表现出色,与顶级模型DeepSeek-R1、o1、o3-mini等相比具有竞争力。小型MoE模型Qwen3-30B-A3B激活参数仅为QwQ-32B的10%,性能更优,甚至小规模模型Qwen3-4B也能匹敌Qwen2.5-72B-Instruct。Qwen3支持思考与非思考两种模式,可根据任务需求灵活调整推理深度,并支持119种语言,Qwen3在推理、工具调用及多语言处理等方面显著提升,目前已开源并在阿里云百炼平台上线,提供便捷体验。
3044 0
|
缓存 网络协议 分布式数据库
超级好用的C++实用库之DNS解析
超级好用的C++实用库之DNS解析
315 0
ELK 圣经:Elasticsearch、Logstash、Kibana 从入门到精通
ELK是一套强大的日志管理和分析工具,广泛应用于日志监控、故障排查、业务分析等场景。本文档将详细介绍ELK的各个组件及其配置方法,帮助读者从零开始掌握ELK的使用。
|
监控 Java 应用服务中间件
从零手写实现 tomcat-12-listener 监听器
该文是一个系列教程的概述,作者旨在通过亲手实现一个简化版的 Tomcat 来深入理解其工作原理。文章介绍了从零开始编写 Tomcat 的各个步骤,包括解析 `web.xml`、基础的 Socket 实现、请求和响应的抽象、Servlet 支持、线程池、WAR 包解析、与 SpringBoot 集成、Servlet 处理类、静态资源及过滤器和监听器的实现。文中通过派对的比喻解释了监听器(Listener)的概念,它们在 Tomcat 中监听和响应应用生命周期中的特定事件,如日志记录、资源设置和清理等。文章还详细描述了 Tomcat 处理监听器的过程,并列举了一些常见的监听器类型。
|
网络协议 网络架构
计算机网络中MSS和MTU的区别
【4月更文挑战第11天】
2099 0
计算机网络中MSS和MTU的区别
|
1天前
|
数据采集 人工智能 安全
|
10天前
|
云安全 监控 安全