在 R 脚本中将纪元时间(字符串)转换为人类可读的日期

Conversion of epoch time (string) to human readable date in R script

我正在使用 R 脚本中的 Web 请求从 ArcGIS Rest 服务检索数据。其中一个属性列确实包含一个日期值。这些日期被 returned 作为纪元值(字符串)。我尝试将这些纪元字符串转换为人类可读的日期,但直到现在都无济于事...

请参阅下面我的可重现脚本。包含日期的列称为 WVK_BEGDAT。此列的内容应转换为人类可读的日期。

我尝试了通过 Google...

找到的一些建议
library(httr)
library(sf)
library(lubridate)

url <- parse_url("https://services.arcgis.com/nSZVuSZjHpEZZbRo/arcgis/rest/services")
url$path <- paste(url$path, "NWB_Wegvakken/FeatureServer/0/query", sep = "/")
url$query <- list(where = "WEGBEHSRT = 'R' AND WEGNUMMER = '015'",
                  outFields = "*",
                  returnGeometry = "true",
                  f = "json")
request <- build_url(url)
request
NWB <- st_read(request, stringsAsFactors = FALSE)
plot(st_geometry(NWB))

NWB$WVK_BEGDAT2 <- as_date(NWB$WVK_BEGDAT, format="%d-%m-%Y", tz = "CET")

我最接近的是使用 lubridate 包中的 as_date() 函数。这个函数至少不会return报错,bu用NAs填充列。

有什么建议吗?提前致谢。

as.POSIXct 应该可以解决问题:

as.POSIXct(as.numeric(NWB$WVK_BEGDAT)/1000, origin = "1970-01-01")

你必须除以1000,因为你的纪元时间似乎以毫秒为单位。