我正在使用R脚本中的Web请求从ArcGIS Rest服务中检索数据。属性列之一确实包含日期值。这些日期将作为纪元值(字符串)返回。我尝试将这些时期字符串转换为人类可读的日期,但直到现在都无济于事...
请参阅下面的可复制脚本。包含日期的列称为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")
我最近得到的是使用as_date()
包中的lubridate
函数。此函数至少不返回错误,用NA填充该列。
有什么建议吗?预先感谢。
答案 0 :(得分:1)
as.POSIXct
应该可以解决问题:
as.POSIXct(as.numeric(NWB$WVK_BEGDAT)/1000, origin = "1970-01-01")
您必须除以1000
,因为您的纪元时间似乎是毫秒。