Evan の Logbook
✨ Updates
🎨 Style Guide
🧠 Creative Resources
🗒️ Mind Notes
🧭 Knowbase
📘 SOPs
🩺 Medical Research
🛠️ Tech Chronicles
💰 Fortune Blueprint
📈 R Visionary
📊 Statistics
🖼️ BioVis
⏳ISO 8601 国际时间标准
type
status
date
slug
summary
tags
category
icon
password
comment
ISO 8601 是由国际标准化组织(ISO)制定的日期与时间格式标准,广泛应用于:
- 数据交换与接口(API)
- 数据库存储
- 日志记录与时间戳
- 跨时区协作
在 R 中,
lubridate::ymd(), readr::parse_date(), as.POSIXct() 等函数默认支持该格式。使用统一标准可以避免跨地区、跨系统的日期解析歧义(例如美式
MM/DD/YYYY 与欧式 DD/MM/YYYY 混淆)。✅ 常见 ISO 8601 格式
类型 | 格式示例 | 描述 |
日期 | 2025-04-25 | 年-月-日 |
日期 + 时间 | 2025-04-25T14:30:00 | T 是日期与时间的分隔符 |
UTC 时间戳 | 2025-04-25T14:30:00Z | Z 表示 UTC(零时区) |
含时区偏移 | 2025-04-25T14:30:00+08:00 | UTC+8,例如北京时间 |
💡 小贴士:
- 建议尽量在存储和传输中使用 UTC(
Z),在展示时再转换为本地时区。
- 时区偏移格式
±HH:MM在跨系统解析时更安全。
🛠 R 中解析 ISO 8601 的方法
📚 readr 支持的日期时间格式代码
类型 | 代码 | 含义 | 示例 |
年 | %Y | 四位年份 | 2021 |
ㅤ | %y | 两位年份 | 21 |
月 | %m | 数字(01–12) | 2 |
ㅤ | %b | 缩写英文名 | Feb |
ㅤ | %B | 全称英文名 | February |
日 | %d | 一位或两位数字 | 2 |
ㅤ | %e | 两位数字 | 02 |
时间 | %H | 24 小时制小时 | 13 |
ㅤ | %I | 12 小时制小时 | 1 |
ㅤ | %p | AM/PM | pm |
ㅤ | %M | 分钟 | 35 |
ㅤ | %S | 秒 | 45 |
ㅤ | %OS | 带小数的秒 | 45.35 |
ㅤ | %Z | 时区名称 | America/Chicago |
ㅤ | %z | 与 UTC 的时差 | +0800 |
其他 | %. | 跳过一个非数字字符 | : |
ㅤ | %* | 跳过任意数量的非数字字符 | ㅤ |
⚠ 常见坑点
- 省略时区信息
- 如果缺少
Z或±HH:MM,可能会被解析为本地时间而不是 UTC。
- 混淆分隔符
YYYY-MM-DD与DD-MM-YYYY容易在非标准格式中混淆,建议始终用标准 ISO 8601。
- 夏令时(DST)问题
- 使用本地时区时,夏令时切换可能导致时间跳跃或重复。
Prev
为什么使用 lubridate?
Next
分类变量处理 - forcats
Loading...
YouTube 使用笔记