Sto cercando di calcolare la differenza (in secondi) tra due date/orari formattati come segue:Come trovo la differenza tra le ore in diversi fusi orari in Python?
2010-05-11 17:07:33 UTC
2010-05-11 17:07:33 EDT
time1 = '2010-05-11 17:07:33 UTC'
time2 = '2010-05-11 17:07:33 EDT'
delta = time.mktime(time.strptime(time1,"%Y-%m-%d %H:%M:%S %Z"))-\
time.mktime(time.strptime(time2, "%Y-%m-%d %H:%M:%S %Z"))
il problema che ho avuto è EDT non viene riconosciuto, l'errore specifico è
ValueError: time data '2010-05-11 17:07:33 EDT' does not match format '%Y-%m-%d %H:%M:%S %Z'
Siete alla ricerca di questo http://labix.org/python-dateutil? Potrebbe essere più semplice di qualunque cosa tu stia facendo. –
Grazie per le risposte. Ma anche usando pytz non riuscivo ancora a capire un modo migliore di analizzare la stringa "EDT" ecc. E convertirlo in un obj di pytz il fuso orario può essere qualsiasi abbreviazione di stringa di 3-4 lettere ma pytz usa "US/Eastern" . Devo creare una mappatura per convertire le abbreviazioni in formato "USA/orientale"? Sembra troppo per me. Grazie, – JasonA
finisco per la costruzione di un file di testo con le voci come segue: << EDT \t Eastern Daylight Time (America del Nord) \t UTC-04 >> quindi cercare la voce utilizzando stringa 'EDT' ottenuto dalla stringa time Usando il valore -04 nel file posso usare mktime() per ottenere la differenza di tempo in secondi. Penso ancora che ci dovrebbe essere un modo più semplice per farlo ... Grazie, – JasonA