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

如何在R语言中将时间戳字符串"1515511826000"转换为指定日期格式

没问题,这个需求在R里轻松就能搞定!你提供的"1515511826000"是13位毫秒级时间戳,和常用的10位秒级时间戳不一样,所以第一步得先做单位转换,再转成你要的YYYY-MM-DD HH:MM:SS格式。

我给你两种实现方式,你可以选顺手的来:

方式一:用基础R函数

不需要额外安装包,直接用内置函数就能搞定:

# 定义原始时间戳字符串
timestamp_str <- "1515511826000"

# 把字符串转成数值,再除以1000转换成秒级时间戳
timestamp_sec <- as.numeric(timestamp_str) / 1000

# 转换为日期时间对象并格式化
formatted_date <- format(
  as.POSIXct(timestamp_sec, origin = "1970-01-01", tz = "UTC"),
  format = "%Y-%m-%d %H:%M:%S"
)

# 输出结果
print(formatted_date)

方式二:用lubridate包(更简洁)

lubridate是R里处理日期时间的神器,代码会清爽很多:

# 第一次用先安装包
# install.packages("lubridate")
library(lubridate)

timestamp_str <- "1515511826000"
# 一步转成日期时间再格式化
formatted_date <- format(
  as_datetime(as.numeric(timestamp_str)/1000, tz = "UTC"),
  "%Y-%m-%d %H:%M:%S"
)

print(formatted_date)

关键注意点

  • 一定要除以1000!如果直接用13位数值转日期,会得到远未来的错误结果(因为R默认按秒处理时间戳)。
  • tz参数要和原始日期的时区对应,你给出的原始日期是UTC时区的0点,所以用tz = "UTC"就能得到正确结果;如果你的数据是其他时区,替换成对应的时区字符串就行(比如"Asia/Shanghai")。

运行代码后会得到格式化后的日期:"2018-01-09 00:00:26"(注:你的时间戳对应的实际时间比你提到的January 9th 2018, 00:00:00.000晚26秒,可能是原始记录的小偏差哦)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:42:12