IANA时区
IANA时区
IANA时区
IANA(Internet Assigned Numbers Authority,互联网号码分配机构)负责协调全球DNS的根域名、IP地址分配和其他互联网协议资源。
——百度百科
IANA时区命名:Area/Location
- Area为地理大区,不绑定国家是因为存在国家边界、国家变更问题
- Location为地理大区内的具体城市或地点
IANA时区示例
夏令时(DST,Daylight Saving Time),在每年的某个时间点将时间往后拨快一小时(某些地区可能是半小时,视政策而定),又在当年的某个时间点将时间往前拨回
以中国的夏令时制度(1986年至1991年)为例:
- 四月中旬第一个星期日的凌晨2时整(北京时间),将时钟拨快一小时,即将表针由2时拨至3时,夏令时开始
- 九月中旬第一个星期日的凌晨2时整(北京夏令时),再将时钟拨回一小时,即将表针由2时拨至1时,夏令时结束
——百度百科
| 时区 | UTC偏移量 | 地理大区 | 城市/地点 |
|---|---|---|---|
| Asia/Shanghai | UTC+8 | 亚洲 | 上海 |
| Asia/Tokyo | UTC+9 | 亚洲 | 日本 |
| America/New_York | UTC-5 UTC-4 (DST) | 美洲 | 纽约 |
| Europe/London | UTC+0 UTC+1 (DST) | 欧洲 | 伦敦 |
| Europe/Paris | UTC+1 UTC+2 (DST) | 欧洲 | 巴黎 |
| Australia/Sydney | UTC+10 UTC+11 (DST) | 澳洲 | 悉尼 |
IANA时区注意事项
- 避免使用具有歧义的时区缩写,如CST、IST等
- CST可指代中国标准时间(China Standard Time)、北美中部时间(Central Standard Time)、古巴标准时间(Cuba Standard Time)
- IST可指代印度标准时间(India Standard Time)、爱尔兰标准时间(Irish Standard Time)、以色列标准时间(Israel Standard Time)
- 时区规则(如夏令时起止时间、夏令时偏移时间等)可能因政策调整而变化,IANA时区数据库需要定期更新
操作系统内置时区数据库
| 操作系统 | 时区数据库位置 |
|---|---|
| Linux | 文件系统:/usr/share/zoneinfo/ |
| Mac | 文件系统:/usr/share/zoneinfo/ |
| Windows | 注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones |
Golang的time.LoadLocation
编程语言不一定使用操作系统内置的时区数据库,比如Golang的time.LoadLocation(见Golang标准库文档):
LoadLocation looks for the IANA Time Zone database in the following locations in order:
- the directory or uncompressed zip file named by the ZONEINFO environment variable
- on a Unix system, the system standard installation location
- $GOROOT/lib/time/zoneinfo.zip
- the time/tzdata package, if it was imported
time.LoadLocation的IANA时区数据库查找顺序:
- ZONEINFO环境变量
- Unix系统上的已知安装位置(即/usr/share/zoneinfo/)
- $GOROOT/lib/time/zoneinfo.zip
- time/tzdata包(若通过import导入)
本文作者: panyc0217
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
本文由作者按照 CC BY 4.0 进行授权