How to fix Python error "AttributeError: 'datetime.datetime' object has no attribute 'timestamp'"

Problem:

You want to convert a datetime object into a unix timestamp (int or float: seconds since 1970-1-1 00:00:00) in Python using code like

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

but you see an error message like this:

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'

Solution

You are running your code with Python 2.x which does not support datetime.timestamp() - in most cases the easiest way to fix this issue is to use Python 3, e.g.:

python3 unix-timestamp.py

In case that is not possible e.g. due to incompatibilities, use this snippet instead, which is compatible with both Python 2 and Python 3:

from datetime import datetime
import time

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