Veuillez m'aider à modifier l'objet datetime (par exemple: 2011-12-17 11:31:00-05:00
) (y compris le fuseau horaire) à l'horodatage Unix (comme la fonction time.time () en Python).
Une autre façon est:
import calendar
from datetime import datetime
d = datetime.utcnow()
timestamp=calendar.timegm(d.utctimetuple())
L'horodatage est l'horodatage unix qui affiche la même date avec l'objet datetime d.
import time
import datetime
dtime = datetime.datetime.now()
ans_time = time.mktime(dtime.timetuple())
Réponse incomplète (ne traite pas des fuseaux horaires), mais j'espère utile:
time.mktime(datetime_object.timetuple())
** Modifié sur la base du commentaire suivant **
Dans mon programme, l'utilisateur saisit datetime, sélectionne le fuseau horaire. ... J'ai créé une liste de fuseaux horaires (utilisez pytz.all_timezones) et permettez à l'utilisateur de choisir un fuseau horaire dans cette liste.
Le module Pytz fournit les conversions nécessaires. Par exemple. si dt
est votre objet datetime
et que l'utilisateur a sélectionné 'US/Eastern'
import pytz, calendar
tz = pytz.timezone('US/Eastern')
utc_dt = tz.localize(dt, is_dst=True).astimezone(pytz.utc)
print calendar.timegm(utc_dt.timetuple())
L'argument is_dst=True
consiste à résoudre les heures ambiguës pendant les intervalles d'une heure à la fin de l'heure d'été (voir ici http://pytz.sourceforge.net/#problems-with-localtime ).