2016-03-18 13 views
8

Ich möchte die Sekunden zwischen jetzt und morgen 12:00 berechnen. Also muss ich morgen 12:00 datetime Objekt bekommen.Wie ändere ich datetime.datetime.hour in Python?

Dies ist Pseudocode:

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

Aber es wird diesen Fehler auslösen:

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

Wie kann ich die Stunde ändern, oder wie kann ich ein morgen 00.00 datetime Objekt zu erhalten?

+0

Sie einen Blick auf [diese Antwort] nehmen könnte (http : //stackoverflow.com/questions/8777753/converting-datetime-date-to-utc-timestamp-in-python), so dass Sie ** tomorrow 12: 00 ** datetime in timestamp konvertieren und dann 'time.time () ' – pixis

Antwort

18

die replace method Verwenden Sie einen neuen datetime Objekt zu erzeugen, basierend auf Ihrer bestehenden:

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

Versuchen Sie folgendes:

tomorrow = datetime.datetime(tomorrow.year, tomorrow.month, tomorrow.day, 12, 0, 0) 
Verwandte Themen