首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R脚本中将纪元时间(字符串)转换为人类可读的日期

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

Stack Overflow用户
提问于 2019-02-19 22:28:51
回答 1查看 399关注 0票数 0

我在R脚本中使用web请求从ArcGIS Rest服务检索数据。其中一个属性列包含日期值。这些日期以纪元值(字符串)的形式返回。我尝试将这些纪元字符串转换为人类可读的日期,但直到现在都没有用…

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

我尝试了通过谷歌找到的几个建议……

代码语言:javascript
复制
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()函数。此函数至少不会返回错误,但使用NAs填充该列。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-19 23:02:41

as.POSIXct应该可以做到这一点:

代码语言:javascript
复制
as.POSIXct(as.numeric(NWB$WVK_BEGDAT)/1000, origin = "1970-01-01")

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54768565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档