Python: "AttributeError: 'datetime.datetime' object has no attribute 'timestamp'" beheben

English Deutsch

Problem:

Sie möchten ein datetime-Objekt in einen Unix-Timestamp umwandeln (int oder float: Sekunden seit 1970-1-1 00:00:00) in Python mit Code wie

unix_timestamp_example.py
from datetime import datetime
timestamp = datetime.now().timestamp()

aber Sie sehen eine Fehlermeldung wie diese:

timestamp_traceback.txt
Traceback (most recent call last):
  File "unix-timestamp.py", line 2, in <module>
    timestamp = datetime.now().timestamp()
AttributeError: 'datetime.datetime' object has no attribute 'timestamp'

Lösung

Sie führen Ihren Code mit Python 2.x aus, das datetime.timestamp() nicht unterstützt - in den meisten Fällen ist der einfachste Weg, dieses Problem zu beheben, Python 3 zu verwenden, z.B.:

run_python3.sh
python3 unix-timestamp.py

Falls dies nicht möglich ist, z.B. aufgrund von Inkompatibilitäten, verwenden Sie stattdessen dieses Snippet, das sowohl mit Python 2 als auch Python 3 kompatibel ist:

unix_timestamp_compat.py
from datetime import datetime
import time

dt = datetime.now()
timestamp = time.mktime(dt.timetuple()) + dt.microsecond/1e6

Check out similar posts by category: Python