一文搞懂Linux时区设置、自定义时区文件
概念介绍
常说的 Linux 系统时钟有两个
-
一个是硬件时钟(RTC),即BIOS时间,一般保存的是 GMT0 时间,没时区、夏令时的概念
-
一个是当地时钟(LTC),即我们日常经常看到的时间,比如 date 命令获取的时间,一般是在 GMT 时间的基础上增加或者减去 0 ~ 12 小时
世界标准时间 (UTC)
Coordinated Universal Time,协调世界时,又称世界标准时间或世界协调时间,是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林尼治标准时间
格林尼治标准时间 (GMT)
Greenwich MeanTime,格林尼治时间,又称格林尼治平均时间或格林尼治标准时间,旧译格林威治标准时间,GMT 是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。英国伦敦格林尼治定为 0° 经线开始的地方,地球每 15° 经度就被分为一个时区,共分为 24 个时区,相邻时区相差一小时;例:中国北京位于东八区,GMT 时间比北京时间慢 8 小时
补充:UTC 基本上等于 GMT,世界上所有国家的时间都是以此时间为基准
夏令时 (DST)
Daylight Saving Time,是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为"夏令时间"
一般在天亮早的夏季人为将时间调快一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。各个采纳夏令时的国家具体规定不同。目前全世界有近110个国家每年要实行夏令时
我国也曾经实行过夏令时,在1986年开始实行,取得了相当大的成效,每年省电相当于3个三峡,但是在6年后的1991年,考虑到多方面的因素,最终选择了取消这一制度。夏令时在中国实行了6年便停止实行,其实停止实行的原因一言蔽之就是:中国太大了。中国和英法等国相比,有两点最大的不同:一是国土面积不同,二是气候不同
设置时间
设置系统时间
/etc/localtime 这个文件是用来设置系统的时区的,将 /usr/share/zoneinfo/ 中相应的时区文件拷贝覆盖 /etc/localtime,即可修改时区设置(也可以通过软连接实现),这种修改对 date 命令是及时生效的
不论是 date 还是 hwclock 都会用到这个文件,会根据这个文件的时区设置来进行 UTC 和本地时间的换算
设置完时区之后,可以通过 date 命令来设置系统时间
设置硬件时间
设置完系统时间后,硬件 RTC 时间并没有变更,如果发生重启,系统时间又会恢复到原来的值,所以这里需要将系统时钟同步到 RTC 硬件中
通过 hwclock 命令可以完成相关的设置
世界时区代表
先来看一下不带夏令时的时区文件代表
| 时区 | 地区代表 | 时区文件 |
|---|---|---|
| GMT-12:00 | International Date Line West 国际日期变更线 | Etc/GMT+12 |
| GMT-11:00 | Midway Island, Samoa 萨摩亚时间 | Etc/GMT+11 |
| GMT-10:00 | Hawaii 夏威夷阿留申时间 | Etc/GMT+10 |
| GMT-09:30 | Marquesas 马克萨斯时间 | Etc/GMT+9.30 ** |
| GMT-09:00 | Alaska 阿拉斯加时间 | Etc/GMT+9 |
| GMT-08:00 | Pacific Time (US & Canada) 太平洋时间 | Etc/GMT+8 |
| GMT-07:00 | Arizona, Mountain America 北美山地时间 | Etc/GMT+7 |
| GMT-06:00 | Central America 北美中部时间 | Etc/GMT+6 |
| GMT-05:00 | Eastern Time (US & Canada) 北美东部时间 | Etc/GMT+5 |
| GMT-04:00 | Atlantic Time (Canada) 大西洋时间 | Etc/GMT+4 |
| GMT-03:30 | Newfoundland 纽芬兰时间 | Etc/GMT+3.30 ** |
| GMT-03:00 | Brasilia 巴西利亚时间 | Etc/GMT+3 |
| GMT-02:00 | Mid-Atlantic 大西洋中部时间 | Etc/GMT+2 |
| GMT-01:00 | Azores 亚速尔群岛时间 | Etc/GMT+1 |
| GMT+00:00 | Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London 格林尼治时间 | Etc/GMT Etc/GMT+0 Etc/GMT-0 Etc/GMT0 |
| GMT+01:00 | Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna 欧洲中部时间 | Etc/GMT-1 |
| GMT+02:00 | Jerusalem 以色列时间 | Etc/GMT-2 |
| GMT+03:00 | Moscow, St. Petersburg, Volgograd 莫斯科时间 | Etc/GMT-3 |
| GMT+03:30 | Tehran 伊朗时间 | Etc/GMT-3.30 ** |
| GMT+04:00 | Abu Dhabi, Muscat 海湾时间 | Etc/GMT-4 |
| GMT+04:30 | Kabul 阿富汗时间 | Etc/GMT-4.30 ** |
| GMT+05:00 | Islamabad, Karachi, Tashkent 巴基斯坦时间 | Etc/GMT-5 |
| GMT+05:30 | Chennai, Kolkata, Mumbai, New Delhi 印度时间 | Etc/GMT-5.30 ** |
| GMT+05:45 | Kathmandu 尼泊尔时间 | Etc/GMT-5.45 ** |
| GMT+06:00 | Astana, Dhaka 孟加拉国时间 | Etc/GMT-6 |
| GMT+06:30 | Yangon (Rangoon) 缅甸时间 | Etc/GMT-6.30 ** |
| GMT+07:00 | Bangkok, Hanoi, Jakarta 印度支那时间 | Etc/GMT-7 |
| GMT+08:00 | Beijing, Chongqing, Hong Kong, Urumqi 中国时间 | Etc/GMT-8 |
| GMT+08:30 | Pyongyang 平壤时间 | Etc/GMT-8.30 ** |
| GMT+08:45 | Eucla 澳大利亚中部西部时间 | Etc/GMT-8.45 ** |
| GMT+09:00 | Osaka, Sapporo, Tokyo 日本时间 | Etc/GMT-9 |
| GMT+09:30 | Adelaide 澳大利亚中央时间 | Etc/GMT-9.30 ** |
| GMT+10:00 | Canberra, Melbourne, Sydney 澳大利亚东部时间 | Etc/GMT-10 |
| GMT+10:30 | Lord Howe Island 豪勋爵时间 | Etc/GMT-10.30 ** |
| GMT+11:00 | Magadan, Solomon Is., New Caledonia 所罗门群岛时间 | Etc/GMT-11 |
| GMT+12:00 | Fiji, Kamchatka, Marshall Is. 斐济时间 新西兰时间 | Etc/GMT-12 |
| GMT+12:45 | Chatham Is. 查塔姆岛标准时间 | Etc/GMT-12.45 ** |
| GMT+13:00 | Nuku’alofa 汤加时间 | Etc/GMT-13 |
| GMT+14:00 | Christmas Island 莱恩群岛时间 | Etc/GMT-14 |
注意:
- 带 ** 号的,表示默认不存在该时区文件,需自定义,详见后文的《自定义时区文件》章节
- 表里说的时区文件,路径前缀都是 /usr/share/zoneinfo/
再来看一下带夏令时的时区文件代表
| 时区 | 地区代表 | 时区文件 |
|---|---|---|
| GMT-12:00 | International Date Line West 国际日期变更线 | N/A |
| GMT-11:00 | Midway Island, Samoa 萨摩亚时间 | N/A |
| GMT-10:00 | Hawaii 夏威夷阿留申时间 | America/Adak |
| GMT-09:30 | Marquesas 马克萨斯时间 | N/A |
| GMT-09:00 | Alaska 阿拉斯加时间 | America/Anchorage |
| GMT-08:00 | Pacific Time (US & Canada) 太平洋时间 | America/Los_Angeles |
| GMT-07:00 | Arizona, Mountain America 北美山地时间 | America/Denver |
| GMT-06:00 | Central America 北美中部时间 | America/Chicago |
| GMT-05:00 | Eastern Time (US & Canada) 北美东部时间 | America/New_York |
| GMT-04:00 | Atlantic Time (Canada) 大西洋时间 | America/Halifax |
| GMT-03:30 | Newfoundland 纽芬兰时间 | America/St_Johns |
| GMT-03:00 | Brasilia 巴西利亚时间 皮埃尔和密克隆群岛时间 | America/Sao_Paulo America/Miquelon |
| GMT-02:00 | Mid-Atlantic 大西洋中部时间 | N/A |
| GMT-01:00 | Azores 亚速尔群岛时间 | Atlantic/Azores |
| GMT+00:00 | Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London 格林尼治时间 | Europe/London |
| GMT+01:00 | Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna 欧洲中部时间 | Europe/Amsterdam |
| GMT+02:00 | Jerusalem 以色列时间 欧洲东部时间 | Asia/Jerusalem Europe/Kiev |
| GMT+03:00 | Moscow, St. Petersburg, Volgograd 莫斯科时间 | N/A |
| GMT+03:30 | Tehran 伊朗时间 | Asia/Tehran |
| GMT+04:00 | Abu Dhabi, Muscat 海湾时间 | N/A |
| GMT+04:30 | Kabul 阿富汗时间 | N/A |
| GMT+05:00 | Islamabad, Karachi, Tashkent 巴基斯坦时间 | N/A |
| GMT+05:30 | Chennai, Kolkata, Mumbai, New Delhi 印度时间 | N/A |
| GMT+05:45 | Kathmandu 尼泊尔时间 | N/A |
| GMT+06:00 | Astana, Dhaka 孟加拉国时间 | N/A |
| GMT+06:30 | Yangon (Rangoon) 缅甸时间 | N/A |
| GMT+07:00 | Bangkok, Hanoi, Jakarta 印度支那时间 | N/A |
| GMT+08:00 | Beijing, Chongqing, Hong Kong, Urumqi 中国时间 | N/A |
| GMT+08:30 | Pyongyang 平壤时间 | N/A |
| GMT+08:45 | Eucla 澳大利亚中部西部时间 | N/A |
| GMT+09:00 | Osaka, Sapporo, Tokyo 日本时间 | N/A |
| GMT+09:30 | Adelaide 澳大利亚中央时间 | Australia/Adelaide |
| GMT+10:00 | Canberra, Melbourne, Sydney 澳大利亚东部时间 | Australia/Melbourne |
| GMT+10:30 | Lord Howe Island 豪勋爵时间 | Australia/Lord_Howe |
| GMT+11:00 | Magadan, Solomon Is., New Caledonia 所罗门群岛时间 | N/A |
| GMT+12:00 | Fiji, Kamchatka, Marshall Is. 斐济时间 新西兰时间 | Pacific/Auckland |
| GMT+12:45 | Chatham Is. 查塔姆岛标准时间 | Pacific/Chatham |
| GMT+13:00 | Nuku’alofa 汤加时间 | N/A |
| GMT+14:00 | Christmas Island 莱恩群岛时间 | N/A |
注意:
- N/A,表示该地区没有夏令时
- 表里说的时区文件,路径前缀都是 /usr/share/zoneinfo/
工具介绍
常用的工具
- zdump,以文本展示某个时区变化历史的工具
- zic,时区编译器,可将时区定义的文本文件编译成二进制时区文件
这两个工具,在 Ubuntu 18.04 的机器上,默认就有
编译
去官网:https://www.iana.org/time-zones 下载最新的 timezone 压缩包

在 Ubuntu 18.04 的机器上,执行如下步骤开始编译
lzip -d tzdb-2022g.tar.lz
tar -xf tzdb-2022g.tar
mkdir out
cd tzdb-2022g/
# TOPDIR 指定目录安装,否则会安装到系统的 /usr/share/zoneinfo/ 目录下
make TOPDIR=$PWD/../out install
编译完成后的安装目录结构如下

zdump
cd ../out/usr/bin/
./zdump -v ../share/zoneinfo/America/Los_Angeles
# 报错说: No such file or directory
# 使用 strace 来跟踪看看哪里出了问题
strace ./zdump -v ../share/zoneinfo/America/Los_Angeles
# 发现是 zdump 默认会把 $TOPDIR/usr/share/zoneinfo/ 带进来
# 所以我们只需要带 America/Los_Angeles 就可以了
./zdump -v America/Los_Angeles
# 就可以看到夏令时相关的信息啦,strace 真有用# 后来研读 zdump.c 的代码,发现绝对路径也可以,第一个字符要是'/'
./zdump -v /home/xxx/out/usr/share/zoneinfo/America/Los_Angeles
zic
# 回到 tzdb-2022g 目录,当前目录就有之前编译生成的 zdump/zic 工具
# 新建个目录,拿"北美"这个文本文件,编译一下生成二进制时区文件
mkdir my_tz_file
./zic -d ./my_tz_file/ northamerica
# 生成的二进制时区文件都在这个新建的文件夹里了
# 再用 zdump 试一下
./zdump -v /home/xxx/tzdb-2022g/my_tz_file/America/Los_Angeles
# 也是没问题的,但有一点疑惑
# 我们自己生成的 Los_Angeles 文件,文件大小跟系统的有出入
ls -lh ./my_tz_file/America/Los_Angeles
# 1.3K
ls -lh /usr/share/zoneinfo/America/Los_Angeles
# 2.8K# 仔细看 zic 的说明文档才发现,如果要跟系统的文件一样大,需要加 -b fat 参数
./zic -b fat -d ./my_tz_file/ northamerica
# 据说这个可以兼容老版本
自定义时区文件
由于实际需求,Linux 系统自带的时区文件无法满足需要,上面介绍的世界时区是带夏令时规则的,如果我们不想考虑夏令时,可以使用 /usr/share/zoneinfo/Etc 目录下的时区文件,但是发现该目录缺少了一些非整数的时区文件
从上面介绍的世界时区代表可知,世界上存在着一些特殊的非整数时区,罗列如下
| GMT-09:30 |
|---|
| GMT-03:30 |
| GMT+03:30 |
| GMT+04:30 |
| GMT+05:30 |
| GMT+05:45 |
| GMT+06:30 |
| GMT+08:30 |
| GMT+08:45 |
| GMT+09:30 |
| GMT+10:30 |
| GMT+12:45 |
所以需要我们手动编辑 tzdb-2022g 目录下的 etcetera 文本文件,添加一段,如下红框部分
需要注意的是,文本文件最后需要一行空白行结尾

再用 zic 编辑器生成对应的时区文件,就可以拿去用啦
mkdir my_tz_file_etc
./zic -b fat -d ./my_tz_file_etc/ etcetera
参考
https://blog.csdn.net/weixin_42099906/article/details/116556736
https://blog.csdn.net/q793145253/article/details/127152917
https://www.modb.pro/db/575850
https://www.cnbiancheng.com/?p=1631
https://www.iana.org/time-zones
http://www.shijian.cc/shiqu/ - - 可以对照时间,验证设置的时区文件准不准
相关文章:
一文搞懂Linux时区设置、自定义时区文件
概念介绍 常说的 Linux 系统时钟有两个 一个是硬件时钟(RTC),即BIOS时间,一般保存的是 GMT0 时间,没时区、夏令时的概念 一个是当地时钟(LTC),即我们日常经常看到的时间࿰…...
Java实例实验项目大全源码企业通讯打印系统计划酒店图书学生管理进销存商城门户网站五子棋
wx供重浩:创享日记 对话框发送:java实例 获取完整源码源文件视频讲解文档资料等 文章目录1、企业通讯2、快递打印系统3、开发计划管理系统4、酒店管理系统5、图书馆管理系统6、学生成绩管理系统7、进销存管理系统8、神奇Book——图书商城9、企业门户网站…...
基于nvidia xavier智能车辆自动驾驶域控制器设计与实现-百度Apollo架构(二)
智能车辆操作系统 智能车辆操作系统是智能车辆系统的重要组成部分。现代汽车软件组件通常首 先由不同的供应商开发,然后在有限的资源下由制造商进行集成[42]。智能车辆操作 系统需要采用模块化和分层化设计思想来兼容传感器、分布式通信和自动驾驶通用 框架等模块&a…...
考研408 王道计算机考研 (初试/复试) 网课笔记总结
计算机初试、复试笔记总结(导航栏)📝 一、初试 408 408 - 1. 数据结构与算法 数据结构与算法 笔记导航🚥🚥🚥 🥬 第一章 绪论(无)🥕 第二章 线性表🥪 第三章 栈和队列&…...
[Java·算法·中等]LeetCode34. 在排序数组中查找元素的第一个和最后一个位置
每天一题,防止痴呆题目示例分析思路1题解1👉️ 力扣原文 题目 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1,…...
SAP BTEs的简介及实现
一、认识BTE BTE(Business Transaction Event)也称之为“业务交易事件”,一般的增强(Tcode:SMOD|CMOD)依旧使用ABAP进行二次开发,然而BTE则提供了RFC调用其它产品的可能(Tcode:FIBF)。BTE的设计思路更加简单,和BADI有点类似。在标准程序中留有…...
如何利用海外主机服务提高网站速度?
网站速度是任何在线业务成功的关键。快速的网站速度可以让用户更快地访问您的网站,增加页面浏览量。对于拥有全球用户的网站而言,选择一个海外主机服务商是提高网站速度的有效方法之一。下面是一些利用海外主机服务(如美国主机、香港主机)提高网站速度的…...
【SpringMVC】 一文掌握 》》》 @RequestMapping注解
个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ RequestMapping注解一、SpringMVC环境准备1.相…...
高三应该怎么复习
高三是学生们备战高考的重要一年,正确有序的复习可以有效地提高复习效率,下面是一些高效复习的方法和建议:1. 制定合理的学习计划和目标高三的学生要制定合理的学习计划和目标,适当的计划和目标可以使学习更有针对性和效率。建议根…...
如何通过C++ 将数据写入 Excel 工作表
直观的界面、出色的计算功能和图表工具,使Excel成为了最流行的个人计算机数据处理软件。在独立的数据包含的信息量太少,而过多的数据又难以理清头绪时,制作成表格是数据管理的最有效手段之一。这样不仅可以方便整理数据,还可以方便…...
Kalman Filter in SLAM (6) ——Error-state Kalman Filter (EsKF, 误差状态卡尔曼滤波)
文章目录0.前言1. IMU的误差状态空间方程2. 误差状态观测方程3. 误差状态卡尔曼滤波4. 误差状态卡尔曼滤波方程细节问题0.前言 这里先说一句:什么误差状态卡尔曼?完全就是在扯淡! 回想上面我们推导的IMU的误差状态空间方程,其实…...
centos7部署KVM虚拟化
目录 centos7部署KVM虚拟化平台 1、新建一台虚拟机 2、系统内的操作 1、修改主机名 2、挂载镜像光盘 3、ssh优化 4、设置本地yum仓库 5、关闭防火墙,selinux 3、安装KVM 4、设置KVM网络 5、KVM部署与管理 6、使用虚拟系统管理器管理虚拟机 创建存储池 …...
【华为机试真题详解 Python实现】最小施肥机能效【2023 Q1 | 100分】
文章目录 前言题目描述输入描述输出描述示例 1输入:输出:示例 2输入:输出:题目解析参考代码暴力解法二分法前言 《华为机试真题详解》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可…...
SpringBoot - 什么是跨域?如何解决跨域?
什么是跨域? 在浏览器上当前访问的网站,向另一个网站发送请求,用于获取数据的过程就是跨域请求。 跨域,是浏览器的同源策略决定的,是一个重要的浏览器安全策略,用于限制一个 origin 的文档或者它加载的脚本…...
Astra pro相机使用说明
奥比中光的Astra pro这款相机,目前官网已经搜不到相关信息,应该是停产了。但是很多机器人设备上或者淘宝上还能买到。使用起来经常会出现不同的问题。问题1: 这款相机据网友描述,就是乐视相机LeTMC-520,换了外壳&#…...
扬帆优配|数字经济刮起“东风”,龙头晋级7连板
今日两市共40只涨停股,主要集中于数字经济、6G板块,上一个交易日涨停股为29股;除掉18只ST股及3只一字板新股,共19股涨停。另外,4股封板未遂,整体封板率为83%。 6股封单金额超亿元 从收盘涨停板封单量来看&…...
Day911.DTO和DO为什么要互转 -SpringBoot与K8s云原生微服务实践
DTO和DO为什么要互转 Hi,我是阿昌,今天学习记录的是关于DTO和DO为什么要互转的内容。 一、什么是DTO DTO ,数据传输对象,全称 (Data transfer object),用于网络之间传输通讯的对象模型&#x…...
查找、排序、二叉树的算法,统统记录于此。
文章目录一、查找1. 无序表的顺序查找2. 折半查找3. 分块查找4. 二叉排序树BST5. 哈希表查找二、排序1. 不带哨兵的直接插入排序2. 带哨兵的直接插入排序3. 带哨兵、折半查找的直接插入排序4. 希尔排序5. 冒泡排序6. 快速排序7. 选择排序8. 堆排序9. 归并排序二叉树1. 递归先序…...
如何用Python实现在网页中嵌入YouTube的视频?
要在网页中嵌入YouTube视频,可以使用HTML代码,在Python中使用字符串拼接的方式生成HTML代码。下面是一个示例代码,可以生成嵌入YouTube视频的HTML代码: def embed_youtube_video(video_id, width560, height315): """ 生成嵌…...
Easy Deep Learning——PyTorch中的自动微分
目录 什么是深度学习?它的实现原理是怎么样的呢? 什么是梯度下降?梯度下降是怎么计算出最优解的? 什么是导数?求导对于深度学习来说有何意义? PyTorch 自动微分(自动求导) 为什么…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
多模态图像修复系统:基于深度学习的图片修复实现
多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...
Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...
关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...
