Jira 数据中心。 如何查找任务正在进行的天数? 会解释 tostring - 移动到的任务的状态 fromString - 来自任务的状态
所以,我需要了解该任务在工作中花费了多少天 无需考虑小时和分钟,只需考虑天数 同时,仅任务处于“进行中”状态的那些日子
这就是我所拥有的
import com.atlassian.jira.component.ComponentAccessor
// Status to be counted
final statusName = 'In Progress'
def changeHistoryManager = ComponentAccessor.changeHistoryManager
def datesInStatus = [:]
// Get all status change items
def changeItems = changeHistoryManager.getChangeItemsForField(issue, "status")
def previousDate = null
changeItems.findAll { it.toString == 'In Progress' || it.fromString == 'In Progress' }.each { item ->
addMessage(item.toString())
}
这是 addMessage 的输出
com.atlassian.jira.issue.history.ChangeItemBean@1e5b1b95[fieldType=jira,field=status,from=10614,fromString=In Progress,to=10614,toString=In Progress,created=2024-02-26 14:29 :31.846], com.atlassian.jira.issue.history.ChangeItemBean@21c854c9[fieldType=jira,field=status,from=14201,fromString=Testing,to=10614,toString=In Progress,created=2024-02-26 14:29:31.47], com.atlassian.jira.issue.history.ChangeItemBean@1b94684b[fieldType=jira,field=status,from=10614,fromString=In Progress,to=10501,toString=CODE REVIEW,created=2023 -12-13 18:02:23.731]
诸如
2024-02-26 14:29:31.47
之类的示例值是错误的,因为它们缺少时区或相对于 UTC 的偏移量的指示。因此我们无法知道那是日本东京的下午 2:29 还是美国俄亥俄州托莱多的下午 2:29,这两个截然不同的时刻相隔几个小时。
如果您想假装/假设这些值适用于通用 24 小时天,请解析为
LocalDateTime
。
LocalDateTime ldt = LocalDateTime.parse( input.replace( " " , "T" ) ;
收集并分类。如果您将“天”定义为 24 小时的时间段,则将第一个和最后一个输入到
Duration.between
中。如果您通过日历定义“天”,请将一对 LocalDateTime
对象提供给 Period.between
。