如何使用 R 将数字转换为时间戳
How to convert numeric numbers to time stamp using R
我用过这个脚本
df?timestamp< as.POSIXct(df$timestamp,tz="",format="%Y%m%d%H%M%S",origin = "1970-01-01")
然后我得到 NA。
我的号码是 43466.10 我应该得到的结果是 2019-01-01 02:17:26.
我该怎么办?
事实上,43466.10 不是有效的 Unix 纪元时间。有关详细信息,请参阅 https://en.wikipedia.org/wiki/Unix_time。
这个数字看起来像一个 Excel date/time 值。如果确实如此,那么“2019-01-01 02:17:26”实际上是 43466.0954398148,您应该使用的来源是“1899-12-30”,而不是“1970-01-01”。
在这种情况下您不能直接使用 as.POSIXct
,因为 UNIX 纪元时间正在计算 秒 ,但是 Excel date/time 值是在计算 天。
您可以使用包 openxlsx
进行此转换。试试这个:
# install.packages("openxlsx")
df$timestamp <- openxlsx::convertToDateTime(df$timestamp, origin = "1899-12-30")
我用过这个脚本
df?timestamp< as.POSIXct(df$timestamp,tz="",format="%Y%m%d%H%M%S",origin = "1970-01-01")
然后我得到 NA。
我的号码是 43466.10 我应该得到的结果是 2019-01-01 02:17:26.
我该怎么办?
事实上,43466.10 不是有效的 Unix 纪元时间。有关详细信息,请参阅 https://en.wikipedia.org/wiki/Unix_time。
这个数字看起来像一个 Excel date/time 值。如果确实如此,那么“2019-01-01 02:17:26”实际上是 43466.0954398148,您应该使用的来源是“1899-12-30”,而不是“1970-01-01”。
在这种情况下您不能直接使用 as.POSIXct
,因为 UNIX 纪元时间正在计算 秒 ,但是 Excel date/time 值是在计算 天。
您可以使用包 openxlsx
进行此转换。试试这个:
# install.packages("openxlsx")
df$timestamp <- openxlsx::convertToDateTime(df$timestamp, origin = "1899-12-30")