我有一個日期字符串像這樣,然後使用strptime()
所以它這樣添加時間DATETIME
my_time = datetime.datetime.strptime('07/05/15', '%m/%d/%Y')
,現在我要到23小時59分鐘添加到my_time
我已經試過.timedelta
但它不起作用?我怎麼能這樣做?
我有一個日期字符串像這樣,然後使用strptime()
所以它這樣添加時間DATETIME
my_time = datetime.datetime.strptime('07/05/15', '%m/%d/%Y')
,現在我要到23小時59分鐘添加到my_time
我已經試過.timedelta
但它不起作用?我怎麼能這樣做?
之後添加時間;你可以用datetime.replace()
method這樣做產生新datetime
對象:
my_time = datetime.datetime.strptime('07/05/15', '%m/%d/%y')
my_time = my_time.replace(hour=23, minute=59)
的datetime.strptime()
設置小時和分鐘值恢復爲默認,0
。請注意,對於兩位數的年份(如15
),您將使用%y
,而不是%Y
,這是一個四位數的年份。
您也可以使用datetime.combine()
class method配對了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))
如果你覺得你必須使用一個timedelta()
,考慮到加入它會再次產生一個新的datetime
對象。你可以使用增強分配給它添加「就地」:
my_time = datetime.datetime.strptime('07/05/15', '%m/%d/%y')
my_time += datetime.timedelta(hours=23, minutes=59)
演示:
>>> 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)
如果您需要添加負值或超過一天的金額,那麼只有'timedelta()'解決方案可以工作。 – jfs
首先,根據您提供的日期字符串時,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)
什麼是你的代碼使用?它適用於我 –
你問你是否有代碼「試過」但沒有發佈作品?如果你知道它不起作用,你希望有什麼人在沒有看到代碼的情況下告訴你這件事? –