Il datetime non è un datetime ingenuo, conosce il fuso orario in cui si trova (la stampa indica che è -5). Quindi non vi resta che impostarlo come UTC prima di convertirlo in epoca
>>> import time, pytz
>>> utc = pytz.timezone('UTC')
>>> utc_dt = utc.normalize(dt.astimezone(utc))
>>> time.mktime(utc_dt.timetuple())
1355270789.0 # This is just to show the format it outputs
Se l'oggetto dt era un oggetto datetime ingenuo, avresti bisogno di lavorare con i fusi orari per conformarsi a ora legale mentre trovare la ore corrette tra GMT 0. Ad esempio, Romania in inverno, ha +2 e in estate +3.
Per la vostra -5 esempio, New-York farà:
>>> import time,pytz
>>> timezone = pytz.timezone('America/New_York')
>>> local_dt = timezone.localize(dt)
Ora avete un datetime non ingenuo e si può ottenere il tempo dell'epoca, come ho spiegato prima. Buon divertimento
Epoca secondi non esistono per fuso orario. Per definizione sono UTC e sono gli stessi in tutto il mondo. Ogni fuso orario converte al volo per ora locale. –
@jimmcnamara Questa è la chiave. Estremamente utile, signore. –