Asia/Shanghai与GMT-8的区别

Ubuntu20.04设置时区+failed to set time zone: Invalid or not installed time zone ‘Asis/shanghai‘报错解决办法 Ubuntu20.04设置时区+ailed to set time zone: Invalid or not installed time zone 'Asis/shanghai’報錯解決辦法 一、查看時間和時區 1.使用“timedatectl status”命令查看服務器時間,根據Local time可發現時間也是錯的。 master2@master2:~$ date Thu Apr 7 12:41:38 UTC 2022 master2@master2:~$ timedatectl status 阅读详情
AI摘要

本文深入探讨中国使用的时区概念,包括CST、GMT-8与Asia/Shanghai的区别,以及1986-1991年间夏令时对中国时区的影响。通过对比不同日期格式下时间解析的差异,揭示时区调整对日期处理的重要性。

背景

今天公司一个模块从服务器迁移到k8s,出现时间toString()以后输出结果和以前不一致的情况,原因是以前是CST时间,k8s上统一设置环境时区为GMT-8了
本文会讲清楚中国使用时区的来龙去脉。
下一篇文档,会讲java中,遇到改时区问题,如何解决。

先了解冷知识

知识很重要,理解了这些才是时区的关键。
DST:Daylight Saving Time中文名叫“夏令时”,一般在天亮早的夏季人为将时间调快一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。中国1986-1991年实行夏令时,1992年废除。
CST:China Standard Time(老外认为有其他含义,中国就这个缩写),中国标准时。
GMT:Greenwich Mean Time,格林威治标准时,地球每15°经度 被分为一个时区,共分为24个时区,相邻时区相差一小时;例: 中国北京位于东八区。

Asia/Shanghai与GMT-8的区别

开发和运维经常见到的Asia/Shanghai与GMT-8的是什么意思呢?
GMT-8是东八区,北京时间和东八区一致。
Asia/Shanghai是已地区命名的地区标准时,在中国叫CST。这个地区标准时会兼容历史各个时间节点。中国1986-1991年实行夏令时,夏天和冬天差1个小时,Asia/Shanghai会兼容这个时间段。
结论:1992年以后,在中国,GMT-8和Asia/Shanghai是一样的时间,1986-1991之间,夏天会有一小时时差。

举例

{
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
    Date birthday = sdf.parse("1988-08-13 13:13:13");
    System.out.println("birthday = " + birthday.toString());
    System.out.println("birthday = " + birthday.getTime());
}

{
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    sdf.setTimeZone(TimeZone.getTimeZone("GMT+8"));
    Date birthday = sdf.parse("1988-08-13 13:13:13");
    System.out.println("birthday = " + birthday.toString());
    System.out.println("birthday = " + birthday.getTime());
}

输出结果相差一小时。

birthday = Sat Aug 13 13:13:13 CDT 1988
birthday = 587448793000
birthday = Sat Aug 13 14:13:13 CDT 1988
birthday = 587452393000

如果年份改成2020年,时间就一样了。

别再乱用TimeZone了!Java 8时区处理实战:从Asia/Shanghai到GMT+8的坑我都帮你踩完了 本文深入解析Java 8时区处理中的常见陷阱,特别是从传统TimeZone迁移到ZoneId时的差异。通过对比Asia/Shanghai和GMT+8等不同表示法的行为差异,提供实战建议和最佳实践,帮助开发者避免时区转换中的常见错误,提升代码健壮性。 阅读详情

相关推荐

深入解析@JsonFormat注解与时区陷阱:从GMT到UTC的实战避坑指南

本文深入解析Java中@JsonFormat注解的时区处理机制,揭示其默认使用GMT时区可能导致时间显示错误8小时的常见陷阱。文章通过实战案例,对比GMT与UTC差异,并提供从字段注解修复、全局Jackson配置到前后端协同的完整避坑指南,帮助开发者确保时间数据的正确序列化与展示。

weixin_29017445的博客 84

别再乱用TimeZone了!Java 8的ZoneId实战避坑指南(含Asia/Shanghai、GMT+8等写法对比)

本文深入解析Java 8中ZoneId的时区处理机制,对比TimeZone的局限性,提供从TimeZone到ZoneId的平滑迁移指南。详细讲解ZoneId的核心概念、常见时区ID写法(如Asia/Shanghai与GMT+8的区别)及实战技巧,帮助开发者避免常见陷阱,提升分布式系统中的时区处理能力。

weixin_30439067的博客 365

时区缩写详解:UTC、GMT、PST、EST与CST的歧义及工程避坑指南

在跨地域系统协作中,时间解析偏差是隐蔽而常见的工程陷阱。为了准确传递时刻,业界通常用 UTC 作为基准时间,与历史悠久的 GMT 在民用时近似等价,但系统日志与数据存储更应统一使用 UTC 与数字偏移。与此同时,PST、EST、CST 等三字母时区缩写看似直观,实则充满歧义:同一个 CST 可代表中国标准时间、美国中部时间或澳大利亚中部时间,错配后可能出现 14 小时级别的数据偏差。理解 UTC 偏移、IANA 时区标识与夏令时切换原理,并在 Java、Python、数据库等场景使用规范格式,是减少跨时区事

weixin_33585822的博客 311

linux环境下时区无法设置(Asia/Shanghai (UTC, 0000))的问题解决

在进行linux下修改时区的时候 总是修改不了 修改成 Asia/Shanghai但是 时区总是 +0000 却不是想要的+0800 按照网上的方法 A : tzselect:执行tzselect命令-->选择Asia-->选择China-->选择east China - Beijing, Guangdong, Shanghai, etc-->然后输入1。 B...

h952520296的博客 9472

彻底搞懂UTC、GMT、CST时区概念与全栈开发实践指南

时区处理是分布式系统和国际化应用开发中的基础技术概念,它直接关系到数据一致性和系统可靠性。其核心原理在于协调世界时(UTC)作为全球统一的时间基准,而各时区则基于UTC进行偏移。在技术价值上,正确的时区处理能避免数据污染、定时任务错乱和跨时区业务逻辑错误等严重问题。应用场景广泛覆盖后端服务、数据库存储、API设计和前端展示等全链路开发环节。本文聚焦UTC、GMT、CST等关键概念辨析,并提供从数据库配置到前后端代码的完整实践方案,帮助开发者构建健壮的时间处理体系,其中时区偏移量和夏令时处理是需要特别关注的技

weixin_34310369的博客 486

开发者必知的时间处理:GMT、UTC与时区实战指南

时间处理是计算机科学中的基础但易错领域,涉及GMT、UTC及时区等核心概念。GMT基于地球自转,存在秒级波动,而UTC采用原子钟技术,精度达纳秒级,成为现代计算机系统的标准。正确处理时间对金融交易、全球日志分析等场景至关重要,错误可能导致资金损失或系统故障。实践中应遵循存储用UTC、展示层转换时区的原则,并利用IANA时区数据库确保准确性。通过理解时间处理原理、掌握各语言的最佳实践,开发者能有效规避夏令时切换、非整点时区等常见陷阱,构建健壮的全球化应用系统。

virusswb的专栏 435

timeZone为什么是Asia/Shanghai,而不是Asia/Beijing

所以目前还没有Asia/beijing。当年在分配时区(timeZone)的时候,还是在1949年之前,那时候,上海的洋人比较多,北京地位还不行呢。中国的时区为什么是Asia/Shanghai,而不是Asia/Beijing?喀什(Asia/Kashgar) 昆仑时区GMT+5:30。哈尔滨 ( Asia/Harbin) 长白时区GMT+8:30。重庆(Asia/Chongqing) 陇蜀时区GMT+7。乌鲁木齐(Asia/Urumqi) 新藏时区GMT+6。

请叫我大师兄 2万+

解锁微信小程序Camera组件的隐藏技能:连续扫码背后的逻辑与陷阱

本文深入解析微信小程序Camera组件在连续扫码功能中的技术原理与优化方案,涵盖识别率提升、内存管理策略及典型问题排查。通过实战参数对比和代码示例,帮助开发者解决扫码枪应用中的性能损耗与界面卡顿问题,提升零售、物流等场景的工作效率。

weixin_29019241的博客 492

为什么 Java 开发中时区设定用 Asia/Shanghai 而不是 GMT+8(防止踩雷)

在全球化的背景下,时区管理对于开发人员来说是个重要但复杂的问题。虽然中国的标准时间是 UTC+8,但在实际开发中,特别是 Java 开发中,我们应尽量使用时区数据库中的区域/位置形式(例如),而不是简单的偏移量形式(例如GMT+8这篇博文将通过具体的例子和分析,探讨为什么在 Java 开发中推荐使用作为时区设定。

算命de博客 4346

微波射频学习笔记18-------偶极子天线和微波天线设计介绍

几种天线设计方法的介绍 一、偶极子天线 1.天线模型 两根紧挨着的金属导体,长度均为四分之一波长,直径均远小于波长,两导体间距也远小于波长。 2.天线性能的设计因素 ① 单个导体长度L:(光速/频率)/4=四分之一波长(在空气中传播的波长),但在导体中传播,波长会变短; ② 导体半径R:远小于波长即可,使用导电率高些的材料,市面上常见直径零点几毫米就挺好,或者用波长/200,得出一个小200的值,也算远小于波长; ③ 两导体间距S:远小于波长即可,可以比半径更小点。 以上三个变量L、R、S,均可在仿真软件

Sil_sprout 1万+

告别迷茫!用ETAS RTA-OS配置你的第一个AUTOSAR OS任务(含VRTA虚拟ECU实战)

本文详细介绍了如何使用ETAS RTA-OS工具链在VRTA虚拟ECU上配置和运行第一个AUTOSAR OS任务。通过从XML配置到任务调度的全流程实战,帮助开发者快速掌握嵌入式操作系统开发的核心步骤,特别适合刚接触AUTOSAR的开发者快速上手。

weixin_42533622的博客 418

彻底搞懂 GMT/UTC/ 时区:90% 开发者都踩过的时间概念坑

GMT全称Greenwich Mean Time(格林威治平均时间),核心定义是:以英国伦敦皇家格林威治天文台所在的本初子午线(0°经线)为基准,太阳横穿该子午线的时刻为正午12点,以此为基础计算的全球统一时间。19世纪中叶,英国作为海上霸主,为了解决航海导航的时间混乱问题,将格林威治天文台的时间定为全国标准时间。随后,1884年的国际子午线会议正式将本初子午线定在格林威治,GMT也成为全球第一个统一的时间标准。GMT:基于地球自转的旧时间标准,精度低,仅适用于低要求场景;UTC。

2025博客之星Top81。专注AI工程化与架构实战。从分布式思维到模型部署,用工程化视角为你厘清AI落地的真实路径。 1582

RWEQ土壤风蚀模型的估算与变化归因分析

本次以介绍RWEQ模型的基本原理及数据需求,再结合案例讲解RWEQ模型中区域地理空间数据库构建的方法和各个参量提取的原理与方法,最后结合典型案例进行综合讲解风蚀模数估算、制图及归因分析。空间分析与制图:提取分析、局部分析、邻域分析、区域分析、插值分析、平滑处理、像元提取、采样与重采样。以某实际应用为案例,掌握RWEQ模型进行当地土壤风蚀量空间分布分析整体流程。地图服务器、在线地图、范围指示器、格网、表格、基础地图服务使用规则介绍。掌握土壤风蚀模型的原理、优势点及因子组成。

2301_77413856的博客 1194

别再乱用TimeZone了!Java8新API ZoneId实战避坑指南(含Asia/Shanghai、GMT+8等写法对比)

本文详细解析了Java 8中ZoneId时区处理API的核心机制与最佳实践,对比了Asia/Shanghai、GMT+8等不同时区表示方法的差异。通过新旧API对比和实战示例,帮助开发者避免常见时区陷阱,实现从TimeZone到ZoneId的平滑迁移,提升代码健壮性和可维护性。

weixin_30628077的博客 773

【笔记软件obsidian】从入门到精通

目录 一、前言 二、下载及安装 三、【选修】ios用户如何通过iCloud进行三平台同步 四、基本Markdown语法 五、【选修】插件的下载及安装方式 六、

patrick的博客 9万+

Google Gemini 模型本地可视化

Google近期发布了Gemini模型,而且开放了Gemini Pro API,Gemini Pro 可免费使用!Gemini Pro支持全球180个国家的38种语言,目前接受文本、图片作为输入并生成文本作为输出。Gemini Pro的表现超越了其他同类模型,当前版本配备了 32K 文本上下文窗口,可免费使用,且其定价将十分有竞争力。Gemini Pro具备丰富的功能:函数调用、数据嵌入、语义检索、自定义知识嵌入以及聊天功能。

HJ_blog 1246

从‘Etc/GMT-8’到‘Asia/Shanghai’:深入Java 8 ZoneId源码,搞懂时区ID的‘潜规则’

本文深入解析Java 8中的`ZoneId`时区机制,从源码层面探讨`ZoneOffset`与`ZoneRegion`的区别,揭示时区ID的解析规则和懒加载优化策略。通过实战案例展示时区转换、夏令时处理等最佳实践,帮助开发者高效处理全球化和分布式系统中的时间问题。

weixin_30689307的博客 412

Python爬虫:实时交通流量数据爬取与路况分析

随着城市化进程的不断推进,交通流量的管理与预测已成为智能交通系统的重要研究方向。交通流量数据不仅为城市交通管理提供了科学依据,还为驾驶员提供了实时路况信息,帮助其做出更加合理的出行决策。通过爬虫技术,我们可以实时获取城市的交通流量数据,从而分析路况,优化交通管理。在这篇博客中,我们将介绍如何使用Python编写一个爬虫来爬取实时交通流量数据,分析道路的交通状况。我们将使用最新的技术工具来构建爬虫,包括。

2201_76125261的博客 1267

别再乱用TimeZone了!Java8新API ZoneId的正确打开方式(含Asia/Shanghai、GMT+8等常用时区代码对比)

本文详细解析了Java 8中ZoneId时区处理API的正确使用方法,对比了TimeZone与ZoneId的核心差异,并提供了从旧API迁移到ZoneId的实践指南。重点介绍了Asia/Shanghai、GMT+8等常用时区代码的正确表示方式,帮助开发者避免常见的时区处理陷阱,提升代码的线程安全性和可维护性。

weixin_30546189的博客 449

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

深入ZoneId源码:为什么你的‘GMT+8’和我的‘Asia/Shanghai’不一样?聊聊ZoneOffset与ZoneRegion的设计哲学

本文深入解析Java 8中ZoneId的设计哲学,探讨ZoneOffset与ZoneRegion的区别及其在实际开发中的应用。通过源码分析,揭示为何‘GMT+8’与‘Asia/Shanghai’虽同属东八区却行为不同,帮助开发者避免常见时区陷阱,提升代码健壮性。

weixin_30696427的博客 411

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

JAVA夏令时的坑 GMT+8 和 Asia/Shanghai

GMT+8 和 Asia/Shanghai 的区别: https://www.jianshu.com/p/b9a7739ff569 所以要保证程序显示的时间没有问题,需要将JVM和spring.jackson.time-zone设置的时区保持一致即可解决问题 linux 服务器默认时区 和 jvm 时区 都是 :ZONE=‘Asia/Shanghai’ 大佬们,把 数据库链接时区 都变成 和 操作系统 和 jvm 一致把 https://www.cnblogs.com/wkaca7114/p/date.h

dazer的专栏 5755

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

关于serverTimezone的设置GMT与UTC---保存数据到mysql相差8小时问题JDBC驱动的版本

写在前面:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟。多谢! 马上下班了,又忘记了配置连接数据库驱动的时区参数serverTimezone,顺便记录一下吧: 先说下UTC和GMT: UTC代表的是全球标准时间,是以原子时计时,更加精准,适应现代社会的精确计时。 GMT格林威治标准时间,是指位于伦敦郊区的皇家格林尼治天文台的标准时间。 但是我们使用的时间是北京时区也就是东八区,领先UTC和GMT八个小时。 一般视为无差别,即:北京时间=UTC+8=GMT

FAIRYTAIL的博客 1万+

时区怎么说

PostgreSQ中,timstamp是不带时区的类型,timestamp with zone是带时区的类型;函数CURRENT_TIMESTAMP得到的是timestamp with zone的当前时间;函数LOCALTIMESTAMP得到的是timestamp类型的时间。 那么你知道,将CURRENT_TIMESTAMP赋值给一个timstamp类型的字段会发生什么吗? 时区?偏移量? 在搞清楚数据库和代码中的时区表达之前,必须掌握好基础知识。 你能分清GMT、UTC、夏令时、时区等概念吗? .

zou8944的博客 638
上一篇: 一篇文章看懂Serverless
下一篇: java中将GMT-8时间输出为CST时间字符串
鲫鱼哥
博客等级 码龄10年 18粉丝 36原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值