我从一个相关的问题中发现了如何从R中的1960年1月起以毫秒为单位转换Stata日期时间格式(请参见下文):

as.POSIXct(874022400000/1000, origin="1960-01-01")


我想在R中做相反的事情:即给定一个以字符串表示的日期时间,找出如何以1960年1月1日00:00:00为单位返回日期时间值。任何建议将不胜感激。

最佳答案

使用as.numeric将日期时间强制转换为自纪元以来的秒数。由于R使用1970作为其原点,因此您必须另外考虑1960-1970的偏移量。最后,当然要注意秒到毫秒的转换。

> mydate = as.POSIXct(874022400000/1000, origin="1960-01-01")
> 1000 * (as.numeric(mydate) - as.numeric(as.POSIXct('1960-01-01')))
[1] 874022400000

08-16 03:27