R语言如何将日期转换为POSIXct对应的Unix时间戳数值
实现方案
直接通过两步转换即可得到对应Unix时间戳,示例代码如下:
as.integer(as.POSIXct("2020-10-01", tz = "UTC"))
运行后输出结果为:1601510400,和你需要的结果完全匹配。
逻辑说明
- 首先用
as.POSIXct()将日期字符串转换为POSIXct格式的时间对象,指定tz = "UTC"是为了和参考代码中origin = "1970-01-01"的默认UTC时区对齐,避免本地时区差异导致时间戳计算偏移。 - 外层用
as.integer()转换,即可直接输出对应秒级Unix时间戳。
如果你的输入本身已经是Date类型的变量,无需先转字符串,直接传入即可:
dt <- as.Date("2020-10-01") as.integer(as.POSIXct(dt, tz = "UTC"))
效果验证
和你提供的参考代码可以形成双向转换:
- 时间戳转日期:
as.Date(as.POSIXct(1601510400, origin = "1970-01-01"))输出2020-10-01 - 日期转时间戳:上述代码输出
1601510400
内容的提问来源于stack exchange,提问作者Ujjawal Bhandari
相关产品推荐
相关产品推荐

