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

R语言字符转POSIXct时年份显示00xx而非20xx的解决方法

解决字符型时间戳转换中年份显示为0024的问题

你的问题根源在于时间格式参数使用错误:

  • 你当前用的%Y是4位年份的格式符,但数据中的年份是2位(24),所以R会将其解析为0024而非2024。
  • 正确的格式符应该是%y,用于匹配2位年份,R会默认将1-68映射为2001-2068,69-99映射为1969-1999,刚好符合你的需求。

方法1:修改base R的as.POSIXct格式参数

直接调整格式字符串中的年份部分:

want <- have %>%
  mutate(timestamp = base::as.POSIXct(Device.Timestamp, format = "%m/%d/%y %H:%M"))

方法2:使用lubridate包简化解析

如果愿意使用其他函数,lubridate包的mdy_hm()函数可以自动识别月/日/年 时:分的格式,无需手动指定格式符:

library(lubridate)
want <- have %>%
  mutate(timestamp = mdy_hm(Device.Timestamp))

验证结果

执行上述任意代码后,查看want$timestamp会得到正确的时间格式:

# 输出示例
[1] "2024-01-28 00:01:00 UTC" "2024-01-28 00:05:00 UTC"
[3] "2024-01-28 00:11:00 UTC" "2024-01-28 00:14:00 UTC"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 08:42:02