You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何导入格式与UTC时间类似的DateTime类型时间数据

日期时间格式解析解决方案

核心问题原因

你当前使用的格式串存在3处不匹配的问题:

  • 没有匹配日期和时间之间的分隔符T,原格式串用了空格分隔日期和时间
  • 使用了%s(Unix时间戳)而非支持小数秒的%OS来匹配带毫秒的秒数部分
  • 没有匹配末尾的时区偏移字段

可用写法

方案1(最简单,无需指定格式)

readr的col_datetime默认支持解析标准ISO 8601格式的时间字符串,你给出的示例完全符合该规范,直接省略format参数即可:

cols(`Time Stamp` = col_datetime())

方案2(显式指定格式)

如果需要严格指定格式,使用如下格式串即可:

cols(`Time Stamp` = col_datetime(format = "%Y-%m-%dT%H:%M:%OS%z"))

各占位符含义:

  • %Y:4位年份
  • %m:2位月份
  • %d:2位日期
  • T:原样匹配时间字符串中的分隔符T
  • %H:24小时制小时
  • %M:分钟
  • %OS:支持小数的秒数,匹配.268毫秒部分
  • %z:匹配带正负号的时区偏移,R 3.2.0及以上版本原生支持带冒号的偏移格式(如-07:00)

低版本R兼容方案

如果使用的R版本低于3.2.0,%z不识别带冒号的偏移,可以先预处理时间字符串,移除时区偏移里的冒号后再解析:

# 示例预处理逻辑
df$`Time Stamp` <- str_replace(df$`Time Stamp`, "([+-]\\d{2}):(\\d{2})$", "\\1\\2")

内容的提问来源于stack exchange,提问作者lettuce_guy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 12:48:04