2016-03-18 8 views
8

Voglio calcolare i secondi tra ora e domani 12:00. Quindi ho bisogno di ottenere domani 12:00 datetime oggetto.Come modificare datetime.datetime.hour in Python?

Si tratta di pseudo codice:

today_time = datetime.datetime.now() 
tomorrow = today_time + datetime.timedelta(days = 1) 
tomorrow.hour = 12 
result = (tomorrow-today_time).total_seconds() 

Ma alzerà questo errore:

AttributeError: attribute 'hour' of 'datetime.datetime' objects is not writable 

Come posso modificare l'ora o come posso ottenere un domani 12:00 datetime oggetto?

+0

Si potrebbe dare un'occhiata a [questa risposta] (http : //stackoverflow.com/questions/8777753/converting-datetime-date-to-utc-timestamp-in-python) in modo da poter convertire ** domani 12: 00 ** datetime in timestamp e quindi sottrarre 'time.time () ' – pixis

risposta

18

Utilizzare la replace method per generare un nuovo oggetto datetime sulla base di quello esistente:

tomorrow = tomorrow.replace(hour=12) 

Return a datetime with the same attributes, except for those attributes given new values by whichever keyword arguments are specified. Note that tzinfo=None can be specified to create a naive datetime from an aware datetime with no conversion of date and time data.

2

Prova questo:

tomorrow = datetime.datetime(tomorrow.year, tomorrow.month, tomorrow.day, 12, 0, 0) 
Problemi correlati