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

在R中转换tibble的长字符串时间戳为月-日-年日期格式

解决方案

你的时间戳格式为YYYYMMDDHHMMSSZ(4位年+2位月+2位日+2位小时+2位分钟+2位秒+Z),需要先正确解析为日期时间对象,再格式化为月-日-年格式。以下是两种可行方案:

方案1:Base R + dplyr

利用strptime解析时间戳,再用format输出指定格式:

library(dplyr)
library(tibble)

# 示例数据
df <- tibble(
  createTimestamp = c("20221003173428Z", "20220714172442Z", "20230118010424Z")
)

# 生成格式化日期列
df <- df %>%
  mutate(
    formatted_date = format(strptime(createTimestamp, format = "%Y%m%d%H%M%SZ"), "%m-%d-%Y")
  )

方案2:tidyverse + lubridate(更简洁)

lubridate包的ymd_hms函数可自动识别带Z的UTC时间戳,无需手动指定格式:

library(dplyr)
library(tibble)
library(lubridate)

# 示例数据
df <- tibble(
  createTimestamp = c("20221003173428Z", "20220714172442Z", "20230118010424Z")
)

# 生成格式化日期列(一步到位)
df <- df %>%
  mutate(formatted_date = format(ymd_hms(createTimestamp, tz = "UTC"), "%m-%d-%Y"))

补充说明

  • 如果需要保留日期类型而非字符串,可在解析后用as.Date转换:
df <- df %>%
  mutate(
    date_obj = as.Date(ymd_hms(createTimestamp)),
    formatted_date = format(date_obj, "%m-%d-%Y")
  )
  • 之前转换失败大概率是因为未指定匹配原时间戳的格式参数,比如strptime需要明确%Y%m%d%H%M%SZ来对应带Z的完整时间串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 07:57:26