2024-04-30 01:06:20 发布
网友
我试图计算从问题产生到解决的时间。使用这些字段:
creation_time = issue.fields.created resolved_time = issue.fields.resolutiondate
打印时输出:
有没有我可以减去解决日期和时间的创建日期和时间,以找出在一个问题上花费了多少时间?在
我写了一个函数来计算响应时间的平均值、中值和方差。希望有帮助
import datetime as d import numpy as np ymd_create = [] ymd_resdate = [] delta_t = [] class calculate: def __init__(self): self.result = 0 def meantime(self, issueobject): for i in range(0, len(issueobject)): ymd_create.append(d.datetime(int(issueobject[i].raw[u'fields'][u'created'].split('T')[0].split('-')[0]), int(issueobject[i].raw[u'fields'][u'created'].split('T')[0].split('-')[1]), int(issueobject[i].raw[u'fields'] [u'created'].split('T')[0].split('-')[2]), int(issueobject[i].raw[u'fields'][u'created'].split('T')[1].split(':')[0]), int(issueobject[i].raw[u'fields'][u'created'].split('T')[1].split(':')[1]))) ymd_resdate.append(d.datetime(int(issueobject[i].raw[u'fields'][u'resolutiondate'].split('T')[0].split('-')[0]), int(issueobject[i].raw[u'fields'][u'resolutiondate'].split('T')[0].split('-')[1]), int(issueobject[i].raw[u'fields'] [u'resolutiondate'].split('T')[0].split('-')[2]), int(issueobject[i].raw[u'fields'][u'resolutiondate'].split('T')[1].split(':')[0]), int(issueobject[i].raw[u'fields'][u'resolutiondate'].split('T')[1].split(':')[1]))) delta_t.append((ymd_resdate[i] - ymd_create[i]).days) self.result = np.mean(np.array(delta_t)) return self.result def mediantime(self, issueobject): for i in range(0, len(issueobject)): ymd_create.append(d.datetime(int(issueobject[i].raw[u'fields'][u'created'].split('T')[0].split('-')[0]), int(issueobject[i].raw[u'fields'][u'created'].split('T')[0].split('-')[1]), int(issueobject[i].raw[u'fields'] [u'created'].split('T')[0].split('-')[2]), int(issueobject[i].raw[u'fields'][u'created'].split('T')[1].split(':')[0]), int(issueobject[i].raw[u'fields'][u'created'].split('T')[1].split(':')[1]))) ymd_resdate.append(d.datetime(int(issueobject[i].raw[u'fields'][u'resolutiondate'].split('T')[0].split('-')[0]), int(issueobject[i].raw[u'fields'][u'resolutiondate'].split('T')[0].split('-')[1]), int(issueobject[i].raw[u'fields'] [u'resolutiondate'].split('T')[0].split('-')[2]), int(issueobject[i].raw[u'fields'][u'resolutiondate'].split('T')[1].split(':')[0]), int(issueobject[i].raw[u'fields'][u'resolutiondate'].split('T')[1].split(':')[1]))) delta_t.append((ymd_resdate[i] - ymd_create[i]).days) self.result = np.median(np.array(delta_t)) return self.result def variancetime(self, issueobject): for i in range(0, len(issueobject)): ymd_create.append(d.datetime(int(issueobject[i].raw[u'fields'][u'created'].split('T')[0].split('-')[0]), int(issueobject[i].raw[u'fields'][u'created'].split('T')[0].split('-')[1]), int(issueobject[i].raw[u'fields'] [u'created'].split('T')[0].split('-')[2]), int(issueobject[i].raw[u'fields'][u'created'].split('T')[1].split(':')[0]), int(issueobject[i].raw[u'fields'][u'created'].split('T')[1].split(':')[1]))) ymd_resdate.append(d.datetime(int(issueobject[i].raw[u'fields'][u'resolutiondate'].split('T')[0].split('-')[0]), int(issueobject[i].raw[u'fields'][u'resolutiondate'].split('T')[0].split('-')[1]), int(issueobject[i].raw[u'fields'] [u'resolutiondate'].split('T')[0].split('-')[2]), int(issueobject[i].raw[u'fields'][u'resolutiondate'].split('T')[1].split(':')[0]), int(issueobject[i].raw[u'fields'][u'resolutiondate'].split('T')[1].split(':')[1]))) delta_t.append((ymd_resdate[i] - ymd_create[i]).days) self.result = np.var(np.array(delta_t)) return self.result
将日期/时间字符串解析为合适的日期时间对象,然后可以使用这些对象进行计算。在
This post解释了如何解析日期/时间字符串,或者您可以查看一下documentation for the strptime() method。在
对于计算,this post中有示例,还有详细的文档here。在
举个例子,类似这样的事情应该接近解决方案:
from datetime import datetime from datetime import timedelta createdTime = datetime.strptime('2016-06-09T14:37:05.000+0200', '%Y-%m-%dT%H:%M:%S.%f') resolvedTime = datetime.strptime('2016-06-10T10:53:12.000+0200', '%Y-%m-%dT%H:%M:%S.%f') duration = resolvedTime - createdTime
持续时间将是timedelta对象,您可以访问持续时间.天,持续时间.秒和持续时间.微秒获取信息。在
strptime的一个缺点是它不支持解析时区,因此您必须先删除输入的那部分内容。或者,请参见this post。在
我写了一个函数来计算响应时间的平均值、中值和方差。希望有帮助
将日期/时间字符串解析为合适的日期时间对象,然后可以使用这些对象进行计算。在
This post解释了如何解析日期/时间字符串,或者您可以查看一下documentation for the strptime() method。在
对于计算,this post中有示例,还有详细的文档here。在
举个例子,类似这样的事情应该接近解决方案:
持续时间将是timedelta对象,您可以访问持续时间.天,持续时间.秒和持续时间.微秒获取信息。在
strptime的一个缺点是它不支持解析时区,因此您必须先删除输入的那部分内容。或者,请参见this post。在
相关问题 更多 >
编程相关推荐