欢迎各位兄弟 发布技术文章
这里的技术是共享的
在 macOS 上查看或设置 UTC(协调世界时) 的方法如下:
终端命令:
打开 终端
(Terminal),输入以下命令:
bashdate -u
输出示例:Thu Jul 20 12:34:56 UTC 2023
(-u
表示显示 UTC 时间而非本地时间)
macOS 默认显示本地时区时间,但可以通过以下方式切换:
终端临时切换:
bashsudo systemsetup -settimezone UTC
(需管理员密码,此命令会将整个系统的时区设为 UTC)
恢复本地时区:
使用 sudo systemsetup -settimezone "时区名称"
恢复(如 Asia/Shanghai
)。
查看所有时区列表:
bashsystemsetup -listtimezones
Python 示例:
pythonimport datetime print(datetime.datetime.utcnow())
Shell 脚本:
bashdate -u "+%Y-%m-%d %H:%M:%S"
确保系统时间准确:
bashsudo sntp -sS time.apple.com
(苹果官方时间服务器会自动返回 UTC 时间并校准本地时间)
UTC 是国际标准时间,与 GMT(格林尼治时间) 几乎相同,但更精确(基于原子钟)。
macOS 底层时间实际存储为 UTC,但根据时区设置转换为本地时间显示。
如果有其他需求(如开发调试),可以进一步说明!
现在是 北京时间 2025-6-17 7:46:52 ,,,macos 上应该显示 utc cst 时间
根据北京时间 2025-06-17 07:46:52(UTC+8),对应的 UTC 时间应为:
2025-06-16 23:46:52(北京时间减去 8 小时)。
运行以下命令:
bashdate -u
输出示例:Mon Jun 16 23:46:52 UTC 2025
bashsudo systemsetup -settimezone UTC
执行后,系统所有时间显示会变为 UTC(需输入密码)。
恢复原时区(如北京):
bashsudo systemsetup -settimezone Asia/Shanghai
bashdate -u +"%Y-%m-%d %H:%M:%S UTC"
输出:2025-06-16 23:46:52 UTC
北京时间(UTC+8)与 UTC 的时差:
bashdate +%z # 显示当前时区偏移(北京输出 +0800) date -u +%z # UTC 偏移(输出 +0000)
macOS 系统时间默认显示本地时区时间,但底层存储为 UTC。
-u
参数强制以 UTC 输出,无需修改系统时区。(就是标准时间,不是中国时间)
如果需要长期使用 UTC,建议直接通过终端命令或脚本处理。
保持系统时区为本地时间(如北京),仅在需要时用 date -u
查看 UTC 时间,可避免影响其他应用。
macos 命令 date
显示 2025年 7 月 8 日 星期二 07时59分 59秒 CST 详解
在 macOS 终端中,date
命令用于显示或设置系统时间。要显示 2025 年 7 月 8 日 星期二 07时59分59秒 CST 这样的自定义格式,需要使用格式化选项。以下是详细说明:
bashdate
输出示例:Wed Jun 19 14:30:00 CST 2024
(以当前时间为准)
bashdate -j -f "%Y-%m-%d %H:%M:%S" "2025-07-08 07:59:59" "+%Y年%m月%d日 %A %H时%M分%S秒 %Z"
-j
:不修改系统时间,仅解析或显示时间。
-f "%Y-%m-%d %H:%M:%S"
:指定输入时间的格式(年-月-日 时:分:秒)。
"2025-07-08 07:59:59"
:输入的目标时间。
"+%Y年%m月%d日 %A %H时%M分%S秒 %Z"
:输出格式:
%Y
:四位年份(2025)
%m
:两位月份(07)
%d
:两位日期(08)
%A
:星期全称(星期二)
%H
:24小时制小时(07)
%M
:分钟(59)
%S
:秒(59)
%Z
:时区缩写(CST,中国标准时间)
2025年07月08日 Tuesday 07时59分59秒 CST
若只是模拟显示未来时间(如 2025 年),而非修改系统时间,需结合 -v
时间调整选项:
bashdate -v +1y -v +1m -v +8d -v +8H -v +30M -v +59S "+%Y年%m月%d日 %A %H时%M分%S秒 %Z"
-v +1y
:在当前时间上加 1 年(2025)。
其他 -v
参数类似,但这种方式灵活性较差,建议直接用 -j
指定目标时间。
时区(CST):确保系统时区设置为中国标准时间(UTC+8)。可通过以下命令确认:
bashsudo systemsetup -gettimezone
若需修改时区(如 Asia/Shanghai):
bashsudo systemsetup -settimezone Asia/Shanghai
中文本地化:确保终端或系统语言设置为中文,否则 %A
(星期二)可能显示为英文(Tuesday)。
符号 | 含义 | 示例 |
---|---|---|
%Y | 四位年份 | 2025 |
%m | 两位月份 | 07 |
%d | 两位日期 | 08 |
%A | 星期全称 | 星期二 |
%H | 24小时制小时 | 07 |
%M | 分钟 | 59 |
%S | 秒 | 59 |
%Z | 时区缩写 | CST |
通过调整格式和参数,你可以灵活输出任意时间和格式。如果需要设置系统时间,需使用 sudo
权限(谨慎操作!)。
CST 是什么意思
CST 是时区缩写,全称为 China Standard Time(中国标准时间),即 UTC+8(协调世界时加 8 小时),是中国大陆、台湾地区和新加坡等地的官方时间标准。
需要注意的是,"CST" 在不同地区可能代表不同的时区:
China Standard Time(中国标准时间):UTC+8
适用于中国大陆、台湾地区、新加坡等。
例如:北京时间 2025 年 7 月 8 日 07:59:59 CST。
Central Standard Time(北美中部标准时间):UTC-6(夏令时为 UTC-5)
适用于美国、加拿大、墨西哥中部地区(如芝加哥、墨西哥城)。
需注意区分,尤其是国际化场景。
Cuba Standard Time(古巴标准时间):UTC-5
仅适用于古巴。
在终端中运行以下命令,确认系统时区是否为 Asia/Shanghai(中国标准时间):
bashtimedatectl | grep "Time zone" # 若系统支持 timedatectl # 或 sudo systemsetup -gettimezone # macOS 专用命令
如果显示 Asia/Shanghai
或 CST (UTC+8)
,则 date
命令输出的 CST
即为中国标准时间。
如果系统时区设置为其他地区(如美国),CST
可能被识别为 Central Standard Time(UTC-6),导致时间计算错误。此时需手动调整时区:
bashsudo systemsetup -settimezone Asia/Shanghai
utc 是什么时间
UTC(Coordinated Universal Time,协调世界时)是全球通用的标准时间基准,用于协调不同时区的时间。它不受夏令时(DST)影响,也不属于任何特定国家或地区,是科学、航空、计算机网络等领域的时间参照标准。
无时区偏移
UTC 本身没有时区概念,但其他时区通常表示为 UTC±X(如 UTC+8 表示比 UTC 快 8 小时)。
与 GMT 的关系
UTC 是 GMT(格林尼治标准时间)的现代科学版本,两者在常规使用中几乎相同(误差不超过 0.9 秒)。
UTC 通过原子钟(国际原子时,TAI)和地球自转修正(闰秒)保持精确。
全球统一性
互联网、服务器日志、航空时刻表等均默认使用 UTC。
例如:当你看到 2025-07-08T00:00:00Z
时,"Z" 代表 UTC(“Zulu Time”的缩写)。
中国标准时间(CST) = UTC+8
北京时间 07:59:59 = UTC 时间前一天的 23:59:59。
其他示例
伦敦(GMT/BST):冬季 UTC+0,夏季 UTC+1(夏令时)。
纽约(EST/EDT):冬季 UTC-5,夏季 UTC-4。
使用 date
命令直接显示 UTC:
bashdate -u
输出示例:Tue Jul 8 23:59:59 UTC 2025
避免时区混淆
全球协作时,UTC 提供唯一时间参考(如国际会议、服务器日志)。
科学和技术的精确性
航天、天文、计算机网络依赖 UTC 同步时间(如 NTP 协议)。
编程中的应用
在代码中处理时间时,通常先存储为 UTC,再转换为本地时间显示。
Q:UTC 和 GMT 有什么区别?
A:GMT 基于地球自转,UTC 基于原子钟。日常使用中可视为等同,但 UTC 更精确(通过闰秒调整)。
Q:如何将本地时间转为 UTC?
A:用 date
命令计算时区偏移(如 CST 是 UTC+8):
bashdate -v -8H +"%Y-%m-%d %H:%M:%S UTC" # 从 CST 时间减去 8 小时
Q:UTC 需要夏令时吗?
A:不需要!夏令时是本地时间的调整(如 UTC+1 变 UTC+2),UTC 本身固定不变。
掌握 UTC 是理解全球时间系统的关键,尤其在跨时区工作时必不可少!