spe*_*f10 3 python time datetime python-datetime
我有一个像这样的日期字符串,然后像这样使用strptime()它
my_time = datetime.datetime.strptime('07/05/15', '%m/%d/%Y')
Run Code Online (Sandbox Code Playgroud)
现在我要加23小时59分钟 my_time
我试过.timedelta但它不起作用?我怎么能这样做?
之后加时间; 您可以使用该datetime.replace()方法生成新datetime对象:
my_time = datetime.datetime.strptime('07/05/15', '%m/%d/%y')
my_time = my_time.replace(hour=23, minute=59)
Run Code Online (Sandbox Code Playgroud)
该datetime.strptime()套小时和分钟值恢复为默认,0.请注意,对于两位数的年份(如15),您使用的%y不是%Y四年级的年份.
您还可以使用datetime.combine()类方法配对a date和time对象:
my_time = datetime.datetime.strptime('07/05/15', '%m/%d/%y')
my_time = datetime.datetime.combine(my_time.date(), datetime.time(23, 59))
Run Code Online (Sandbox Code Playgroud)
如果您认为必须使用a timedelta(),请考虑添加它将再次生成新datetime对象.您可以使用扩充分配来"就地"添加它:
my_time = datetime.datetime.strptime('07/05/15', '%m/%d/%y')
my_time += datetime.timedelta(hours=23, minutes=59)
Run Code Online (Sandbox Code Playgroud)
演示:
>>> import datetime
>>> my_time = datetime.datetime.strptime('07/05/15', '%m/%d/%y')
>>> my_time.replace(hour=23, minute=59)
datetime.datetime(2015, 7, 5, 23, 59)
>>> datetime.datetime.combine(my_time.date(), datetime.time(23, 59))
datetime.datetime(2015, 7, 5, 23, 59)
>>> my_time + datetime.timedelta(hours=23, minutes=59)
datetime.datetime(2015, 7, 5, 23, 59)
Run Code Online (Sandbox Code Playgroud)
首先,根据您提供的日期字符串,format似乎是错误的,您应该使用%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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12256 次 |
| 最近记录: |