Python 将时间添加到日期时间
我有一个这样的日期字符串,然后使用Python 将时间添加到日期时间,python,datetime,time,python-datetime,Python,Datetime,Time,Python Datetime,我有一个这样的日期字符串,然后使用strtime(),所以它是这样的 my_time = datetime.datetime.strptime('07/05/15', '%m/%d/%Y') 现在我想给我的时间加上23小时59分钟 我试过.timedelta,但不起作用?我怎样才能做到这一点呢?之后再加上时间;您可以使用生成新的datetime对象: my_time = datetime.datetime.strptime('07/05/15', '%m/%d/%y') my_time = m
strtime()
,所以它是这样的
my_time = datetime.datetime.strptime('07/05/15', '%m/%d/%Y')
现在我想给我的时间加上23小时59分钟
我试过
.timedelta
,但不起作用?我怎样才能做到这一点呢?之后再加上时间;您可以使用生成新的datetime
对象:
my_time = datetime.datetime.strptime('07/05/15', '%m/%d/%y')
my_time = my_time.replace(hour=23, minute=59)
my_time = datetime.datetime.strptime('07/05/15', '%m/%d/%y')
my_time = datetime.datetime.combine(my_time.date(), datetime.time(23, 59))
datetime.strtime()
将小时和分钟值设置为默认值0
。请注意,对于两位数年份(如15
),您将使用%y
,而不是%y
,即四位数年份
您还可以使用来配对日期
和时间
对象:
my_time = datetime.datetime.strptime('07/05/15', '%m/%d/%y')
my_time = my_time.replace(hour=23, minute=59)
my_time = datetime.datetime.strptime('07/05/15', '%m/%d/%y')
my_time = datetime.datetime.combine(my_time.date(), datetime.time(23, 59))
如果您觉得必须使用timedelta()
,请考虑添加它将再次生成一个新的datetime
对象。您可以使用扩充赋值将其添加到“就地”:
my_time = datetime.datetime.strptime('07/05/15', '%m/%d/%y')
my_time += datetime.timedelta(hours=23, minutes=59)
演示:
首先,根据您提供的日期字符串,
格式似乎有误,您应该使用%y
(小y)表示2位数年份,%y
(大写y)表示4位数年份
然后,您可以按如下所示使用timedelta将时间添加到my_time中,但添加操作会生成一个新的datetime对象,而不会更改my_time
因此,您需要像这样将其分配回您的my_time
-
>>> import datetime
>>> my_time = datetime.datetime.strptime('07/05/15', '%m/%d/%y')
>>> my_time = my_time + datetime.timedelta(hours=23,minutes=59)
>>> my_time
datetime.datetime(2015, 7, 5, 23, 59)
您使用的代码是什么?它适用于我,你是否会问,你是否已经“尝试过”但没有发布过有效的代码?如果你知道它不起作用,你希望任何人在没有看到代码的情况下告诉你什么?如果你需要添加一个负数或超过一天的量,那么只有timedelta()
解决方案会起作用。我不知道为什么,但它会抛出错误AttributeError:type对象“datetime.datetime”没有属性“timedelta”
。我的代码看起来像是来自datetime import datetime的;newTime=passedTime+datetime.timedelta()
如果有人与Alexey Nikonov有相同的错误,这个答案帮助我解决了这个问题:您需要执行导入datetime;newTime=passedTime+datetime.timedelta()
。Alexey基本上导入了日期时间;newTime=passedTime+datetime.datetime.timedelta()
因为他是如何从datetime导入datetime将其导入结构化为。