Converting to unix timestamp Python
Question:
I am trying to convert a datestamp of now into Unix TimeStamp, however the code below seems to be hit but then just jumps to the end of my app, as in seems to not like the time.mktime part.
from datetime import datetime
import time
now = datetime.now()
toDayDate = now.replace(hour=0, minute=0, second=0, microsecond=0)
newDate = time.mktime(datetime.strptime(toDayDate, "%Y-%m-%d %H:%M:%S").timetuple())
print(newDate)
Answers:
Change
newDate = time.mktime(datetime.strptime(toDayDate, "%Y-%m-%d %H:%M:%S").timetuple())
to
newDate = time.mktime(datetime.timetuple())
as an example I did:
from datetime import datetime
from time import mktime
t = datetime.now()
unix_secs = mktime(t.timetuple())
and got unix_secs = 1488214742.0
Credit to @tarashypka- use t.utctimetuple()
if you want the result in UTC (e.g. if your datetime object is aware of timezones)
You could use datetime.timestamp()
in Python 3 to get the POSIX timestamp instead of using now()
.
The value returned is of type float. timestamp()
relies on datetime which in turn relies on mktime()
. However, datetime.timestamp()
supports more platforms and has a wider range of values.
I am trying to convert a datestamp of now into Unix TimeStamp, however the code below seems to be hit but then just jumps to the end of my app, as in seems to not like the time.mktime part.
from datetime import datetime
import time
now = datetime.now()
toDayDate = now.replace(hour=0, minute=0, second=0, microsecond=0)
newDate = time.mktime(datetime.strptime(toDayDate, "%Y-%m-%d %H:%M:%S").timetuple())
print(newDate)
Change
newDate = time.mktime(datetime.strptime(toDayDate, "%Y-%m-%d %H:%M:%S").timetuple())
to
newDate = time.mktime(datetime.timetuple())
as an example I did:
from datetime import datetime
from time import mktime
t = datetime.now()
unix_secs = mktime(t.timetuple())
and got unix_secs = 1488214742.0
Credit to @tarashypka- use t.utctimetuple()
if you want the result in UTC (e.g. if your datetime object is aware of timezones)
You could use datetime.timestamp()
in Python 3 to get the POSIX timestamp instead of using now()
.
The value returned is of type float. timestamp()
relies on datetime which in turn relies on mktime()
. However, datetime.timestamp()
supports more platforms and has a wider range of values.