Skip to content

Instantly share code, notes, and snippets.

@denis-trofimov
Created May 9, 2017 14:33
Show Gist options
  • Save denis-trofimov/200aa500411967e714418957e1319913 to your computer and use it in GitHub Desktop.
Save denis-trofimov/200aa500411967e714418957e1319913 to your computer and use it in GitHub Desktop.
"""
From http://satels.blogspot.ru/2011/04/datetime-timestamp.html
Из datetime в timestamp и обратно
Для python версии 2:
Из datetime в timestamp
"""
import datetime
import time
dt = datetime.datetime.now() # datetime, из которой переводим в timestamp
print time.mktime(dt.timetuple()) # Вот, а это timestamp
"""
Из timestamp в datetime
"""
import datetime
timestamp = 1301990622 # timestamp, из которого переводим
print datetime.datetime.fromtimestamp(timestamp) # Результат будет требующийся datetime
"""
Для python3 (спасибо, Илья Петраш):
"""
from datetime import datetime
timestamp = datetime.today().timestamp()
print(timestamp)
"""
Предложенный метод для python2 даёт в результате float с нулевой дробной частью,
то есть не учитывает миллисекунды/микросекунды. Нативный метод .timestamp() в py3 их учитывает.
Я у себя использовал такой workaround:
"""
timestamp = time.mktime(dt.timetuple()) + float(dt.microseconds) / 1000000
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment