R使用jirAgileR获取JIRA数据时duedate返回双精度值如何解决
问题描述
使用jirAgileR库从JIRA拉取数据时,除duedate字段外其余日期字段均能正常返回标准日期格式,仅duedate返回18466.00、18473.00这类数值。
两类字段的唯一差异是:JIRA侧duedate为date类型,其余可正常解析的日期字段为datetime类型。
复现代码:
library(JirAgileR, quietly = T) library(knitr, quietly = T) library(dplyr, quietly = T) if (is.null(JIRABaseURL)) JIRABaseURL if (is.null(username)) username if (is.null(password)) password fields1<-get_jira_issues(domain = JIRABaseURL, username = username, password = password, jql_query = "project in('My Project')", fields = c('duedate', 'updateddate', 'components'), maxResults = 50, verbose = FALSE, as.data.frame = TRUE)
上述代码中updateddate字段可正常返回正确格式的日期数据。
根因
jirAgileR内置的接口响应解析逻辑,仅对datetime类型字段做了日期类型转换,纯date类型的duedate未被覆盖转换规则,直接返回了接口返回的原始天数值——该值为距1970-01-01的累计天数,不是R语言识别的标准日期对象。
修复方法
拉取数据后手动转换duedate字段格式即可,不需要修改包源码,参考代码:
fields1 <- fields1 %>% mutate(duedate = as.Date(duedate, origin = "1970-01-01"))
转换完成后,duedate字段即为标准R日期格式,可直接用于筛选、计算等后续操作,取值与JIRA页面展示的截止日期完全一致。
内容的提问来源于stack exchange,提问作者Prateek
相关产品推荐
相关产品推荐

