1

使用 JIRA REST API 至少有两种方法可以解决问题:

  • /jira/rest/api/2/issue/{issueIdOrKey}
  • /rest/api/2/search?jql

我在我的项目中同时使用了它们,但是updated对于同一问题,它们返回的字段结果略有不同。

  • 按键获取:2014-07-18T17:53:02。594 +0300
  • 搜索:2014-07-18T17:53:02。000 +0300

由于某种原因,未设置搜索响应的毫秒数。对我来说它看起来像一个错误,但也许有配置设置或什么?

PS:我有最新的JIRA版本(6.2.6)

4

2 回答 2

1

JQL 搜索结果通常直接从 Lucene 索引中获取,该索引仅以毫秒分辨率存储时间戳,而获取实际问题则直接从数据库中的 jiraissue 表中获取日期,该表可以具有亚毫秒级分辨率(至少取决于您的配置的数据库)。

已编辑:我看到我误读了上面的精度:通过获取问题返回的时间戳仅返回毫秒(相对于纳秒),而 JQL 查询仅返回整数秒(相对于毫秒),因此上面链接的 Lucene 数据类型不相关。

但是,答案还是一样的:JQL 从 Lucene 中获取结果,而 issue fetch 则直接从数据库中获取值。在进一步调查为什么 Lucene 索引没有返回毫秒:在 JIRA 源中BaseFieldIndexer.indexDateField,JIRA 调用LuceneUtils.dateToString(date)created字段转换为可由 Lucene 索引的值。该dateToString方法将字段显式转换为整数秒数(在此过程中关闭任何毫秒),然后将该数字转换为字符串表示形式以用于索引目的。

于 2014-07-21T17:55:02.813 回答
0

奇怪的!我用一个 6.2 实例检查了这个,也有不同之处:

JQL:更新:2014-07-11T19:34:04.000-0500 密钥:更新:2014-07-11T19:34:04.768-0500

我敢打赌,从搜索中返回问题列表的代码使用不同的日期格式化程序来清除毫秒数,而从单个问题返回数据的代码不会这样做。我不知道任何会影响它的配置设置。

我建议在http://jira.atlassian.com/browse/JRA Minor将其作为一个小错误提交, 因为任何基于 ms 检查某些内容的代码似乎都是不明智的。

于 2014-07-18T20:06:23.127 回答