【Linux】服务器时区 [ CST | UTC | GMT | RTC ]

圆咕噜咕噜  金牌会员 | 2024-6-23 21:05:43 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 689|帖子 689|积分 2067


目次
1. 硬件时间(Real_TIME Clock [RTC time])
1.1 硬件时间简介
1.2 如何利用硬件时间
2. 系统时间(UTC时间)(Universal time)
2.1 系统时间简介
2.2 UTC时间
3. 当地时间(Local time)
3.1 当地时间简介
3.2 如何利用当地时间
4. 时区(Time zone)
4.1 时区简介
4.2 如何设置时区
4.3 docker容器中的时区(与宿主机日期时间同步)
5. 夏令时(Daylight Saving Time)(DST)
5.1 夏令时简介
5.2 夏令时地域

   明白时间:硬件时间、系统时间(UTC时间)、当地时间、时区与夏令时
  CST: 中国标定时间(China Standard Time),
  UTC: 协调世界时,又称世界标定时间,简称UTC
  GMT: 格林尼治标定时间(旧译格林威治平均时间或格林威治标定时间;英语:Greenwich Mean Time,GMT)
  RTC:Real_TIME Clock 硬件时间
  1. 硬件时间(Real_TIME Clock [RTC time])


1.1 硬件时间简介

硬件时间,也被称为实时时钟(RTC),是指盘算机主板上的一个独立于操作系统的装备,它在电源关闭甚至断电情况下也能保持运行。其功能是记载当前的日期和时间。
1.2 如何利用硬件时间

大部门操作系统在启动时会从RTC读取时间,然后设置系统时间。同样,操作系统也可以将系统时间写回到RTC中。
在Unix和类Unix系统中,hwclock下令可以用来查询和设置RTC时间。例如:
  1. # 查询硬件时间
  2. hwclock --show
  3. # 将系统时间设置为硬件时间
  4. hwclock --systohc
  5. # 将硬件时间设置为系统时间
  6. hwclock --hctosys
复制代码



2. 系统时间(UTC时间)(Universal time)


2.1 系统时间简介

系统时间是盘算机内部利用的时间,它通常在启动时从RTC设置,然后由系统时钟进行跟踪。系统时钟是操作系统内核的一部门,可以以毫秒或纳秒级别提供精确时间。
2.2 UTC时间

系统时间通常利用协调世界时又称世界统一时间(UTC)表示。协调世界时是以原子时秒长为基础,在时刻上只管接近于世界时的一种时间计量系统。
在Unix和类Unix系统中,date下令可以用来查询和设置系统时间:
  1. # 查询系统时间(UTC)
  2. date -u
  3. # 查询本地时间(由系统时间UTC和时区共同决定)
  4. date
  5. # 设置本地时间(后面那串是本地时间)(设置本地时间会同样设置系统时间,只不过会自动帮你做时区转换)
  6. date -s "2022-01-01 00:00:00"
  7. # 直接设置系统时间(不推荐,一般通过设置本地时间来设置系统时间,因为这样设置你还得把后面那串时间计算一下时区)
  8. date -u -s "2022-01-01 00:00:00"
复制代码

3. 当地时间(Local time)


3.1 当地时间简介

当地时间是系统时间颠末期区转换后的时间。时区是根据地理位置确定的,全球分为24个时区,每个时区大约代表15度的经度。例如,北京时间是UTC+8,而伦敦时间是UTC+0。
3.2 如何利用当地时间

在Unix和类Unix系统中,date下令默认显示的是当地时间:
  1. # 查询本地时间
  2. date
复制代码


4. 时区(Time zone)


4.1 时区简介

时区是为了方便统一时间而分别的地理区域。全球被分别为24个时区,每个时区大约代表15度的经度。各时区的时间以UTC(协调世界时)为基准,东边的时区比UTC时间晚,西边的时区比UTC时间早。
4.2 如何设置时区

在Unix和类Unix系统中,可以利用tzselect下令选择时区,然后将选定的时区链接到/etc/localtime:
  1. # 选择时区
  2. tzselect
  3. # 设置时区
  4. ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
复制代码



4.3 docker容器中的时区(与宿主机日期时间同步)

Docker容器的默认时区取决于利用的基础镜像。很多常见的基础镜像(例如Debian,Ubuntu等)的默认时区通常是UTC(协调世界时)。这意味着如果没有在创建或运行Docker容器时显式设置一个特定的时区,那么容器内部的时间将按照UTC来显示。
如果盼望docker容器中的时区与宿主机保持一致,可以在容器docker run的时候增加以下挂载:
  1. -v /etc/localtime:/etc/localtime:ro \
  2. -v /etc/timezone:/etc/timezone:ro\
复制代码


  • /etc/timezone: 这个文件包含了当前设置的时区信息。比如,如果系统设置为美国东部时区,这个文件的内容大概会是 America/New_York。
  • /etc/localtime: 这个文件是当前设定的时区对应的数据文件的复制品或者软链接。这个文件用于提供当地化的日期和时间显示。
这两个文件在系统中扮演着不同的脚色,而且都是影响系统时间表现的重要因素。如果盼望让Docker容器的时间与宿主机完全一致,那么在运行容器时必要同时挂载这两个文件:
  1. docker run -v /etc/timezone:/etc/timezone:ro -v /etc/localtime:/etc/localtime:ro your_image
复制代码
只挂载 /etc/timezone 或 /etc/localtime 大概会导致一些问题,比如在处理跨时区的日期和时间时大概出现错误。
默认情况下,Docker容器并不会主动挂载 /etc/localtime 文件。容器是通过宿主机的内核获取物理时间的。
Docker容器虽然在很多方面都与宿主机隔离,但它们共享同一个内核。这意味着,当容器必要获取当前的物理时间(例如,调用 time() 系统调用)时,它会直接从宿主机的内核获取这个信息。这就是为什么即使不挂载 /etc/localtime,容器中的程序仍旧能够获取到精确的物理时间。
然而,时区信息并不只是物理时间,它还涉及到逻辑时间的处理,包括日历盘算、夏令时调整等等。这些信息是存储在 /etc/timezone 和 /etc/localtime 这两个文件中的。如果盼望容器中的程序能够精确地处理这些时区相关的问题,那么必要将这两个文件同时挂载到容器中,缺一不可。

5. 夏令时(Daylight Saving Time)(DST)


5.1 夏令时简介

夏令时是为了利用日照时间而在夏季调整时间的做法。通常情况下,夏令时会在春末将时间提前一小时,然后在秋初再把时间延后一小时。如许可以使人们在夜晚有更多的日光,从而节省电力。
5.2 夏令时地域

夏令时在全球范围内的采用情况并不统一,很多国家或地域都有自己特定的规定。
采用夏令时的地域
欧洲:大部门欧洲国家在每年3月的最后一个星期日开始夏令时,到10月的最后一个星期日结束。这包括英国、法国、德国、西班牙等国。
北美:包括美国(除了亚利桑那州和夏威夷)、加拿大(除了萨斯喀彻温省和一些地方)和墨西哥的一些地域。北美的夏令时从每年3月的第二个星期日开始,到11月的第一个星期日结束。
澳大利亚:只有南澳大利亚州、新南威尔士州、塔斯马尼亚州和维多利亚州实行夏令时,从每年10月的第一个星期日开始,到次年4月的第一个星期日结束。
不采用夏令时的地域:
中国:中国自1991年起就未再实行夏令时。
日本:日本自1952年以来就没有实行夏令时。
印度:印度没有实行夏令时。
亚利桑那州和夏威夷:这两个美国的地域不采用夏令时。
大部门非洲和南美洲国家:除了一些特定的国家或地域,大部门非洲和南美洲的国家都不实行夏令时。
5.3 如何处理夏令时

大多数现代操作系统和编程语言的时间库都可以主动处理夏令时。例如,在Python中,pytz库提供了世界各地的时区数据,并可以主动处理夏令时:
  1. from datetime import datetime
  2. import pytz
  3. # 获取当前的UTC时间
  4. now = datetime.now(pytz.utc)
  5. # 转换为纽约时间(自动处理夏令时)
  6. ny_time = now.astimezone(pytz.timezone('America/New_York'))
  7. print(ny_time)
复制代码
同样,在Unix和类Unix系统中,只要精确设置了时区,系统就会主动处理夏令时。

Linux 硬件时间(RTC time)、系统时间(UTC时间、Universal time)、当地时间(Local time)、时区(Time zone)与夏令时(DST)剖析-CSDN博客

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

圆咕噜咕噜

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表