如何解决如何使用Timedelta Python从可变日期中减去可变天数
我有一个数据集,其原始日期采用以下格式:
End_date=['Fri,19 Aug 2011 19:28:17 -0000','Sun,08 Apr 2012 02:14:00 -0000','Wed,22 Jun 2011 13:33:00 -0000','Fri,30 Dec 2011 04:36:53 -0000'....]
Duration_in_days=[30,20,10,15,....]
如何使用循环,日期时间和时间增量从End_date中减去持续时间以得出开始日期?
解决方法
from datetime import datetime,timedelta
End_date=['Fri,19 Aug 2011 19:28:17 -0000','Sun,08 Apr 2012 02:14:00 -0000','Wed,22 Jun 2011 13:33:00 -0000','Fri,30 Dec 2011 04:36:53 -0000']
Duration_in_days=[30,20,10,15]
startDates = []
for date,days in zip(End_date,Duration_in_days):
x = datetime.strptime(date,"%a,%d %b %Y %H:%M:%S -0000") - timedelta(days=days)
startDates.append(x)
将startDates
设置为开始日期列表作为日期时间对象
编辑:或使用注释中建议的列表理解:
startDates = [
datetime.strptime(date,%d %b %Y %H:%M:%S -0000") - timedelta(days=days)
for date,Duration_in_days)
]
,
以下程序显示了如何执行此操作,删除了日期并以原始字符串为基础,以原始字符串作为结尾:
['Fri,30 Dec 2011 04:36:53 -0000']
['Wed,20 Jul 2011 19:28:17 +0000','Mon,19 Mar 2012 02:14:00 +0000',12 Jun 2011 13:33:00 +0000','Thu,15 Dec 2011 04:36:53 +0000']
尽管您有相反的评论,但2011年7月20日是星期三:-)
输出显示原始时间和调整后的时间:
Start_date = [datetime.datetime.strftime(datetime.datetime.strptime(dt,fmt) - datetime.timedelta(days=delta),fmt) for dt,delta in zip(End_date,Duration_in_days)]
如果您使用的是更Python化的方法:-),则可以将循环替换为:
'Create review'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。