2016-07-22 22 views
0

Hier ist mein Problem, ich habe 2 mal in Python, eine in EST und andere in GMT. Ich muss beides in die Epoche umwandeln und sie vergleichen. Von dem, wie es aussieht, wenn ich das EST in die Epoche umwandele, sollte es in das genaue Äquivalent von GMT umgewandelt werden, das ich dachte. Es sieht nicht wie es ist:Epoch Times and Time Zonen

from datetime import datetime as dt,datetime,timedelta 
import time 

# EST 
date_time = '09.03.1999' + " " + "08:44:17" 
pattern = '%d.%m.%Y %H:%M:%S' 
epoch = int(time.mktime(time.strptime(date_time, pattern))) 
print epoch 

# GMT 
date_time2 = '09.03.1999' + " " + "13:44:17.000000" 
pattern2 = '%d.%m.%Y %H:%M:%S.%f' 
epoch2 = int(time.mktime(time.strptime(date_time2, pattern2))) 
print epoch2 
+0

Sie brauchen nicht ton sie konvertieren zu Epoche, sie zu vergleichen: http://stackoverflow.com/questions/8142364/how-to-compare- Zwei-Daten Andernfalls können Sie diese Ressource lehrreich finden: http://www.idiotinside.com/2015/03/14/working-with-date-and-time-python-892/ – Aif

+0

Ich sollte klarstellen, dass ich dachte Epochenumwandlung wäre einfacher, da ich diesen Vergleich später mache: 'if (epoch - 120) user3498593

+0

Ich werde auch Filter mit dieser Zeit in Wireshark machen, was einfach zu tun ist epoche – user3498593

Antwort

0

Also, ich denke du verwirrst, was Epoche hier bedeutet. Epoche ist eine Darstellung der Zeit, die die Sekundenzahlen von 1970/01/01 00:00:00 bis zu einem bestimmten Datum zählt.

Epoch Umwandlung kümmert sich nicht um Zeitzonen und Sie können tatsächlich negative Epoch Times mit Zeitzone Umwandlung haben (spielen Sie um http://www.epochconverter.com/).

Ein echtes Beispiel: Ich lebe in Japan, also lokale Zeitepoche 0 ist für mich eigentlich -32400 in GMT-Epoche.

Was Sie tun müssen, ist etwas wie in this question zu tun, um zuerst zwischen Zeitzonen zu konvertieren und dann das Datum zu Epochenkonvertierung zu tun.

Hier ist ein Code aus der akzeptierte Antwort:

from datetime import datetime 
from dateutil import tz 

from_zone = tz.gettz('UTC') 
to_zone = tz.gettz('America/New_York') 

utc = datetime.strptime('2011-01-21 02:37:21', '%Y-%m-%d %H:%M:%S') 

# Tell the datetime object that it's in UTC time zone since 
# datetime objects are 'naive' by default 
utc = utc.replace(tzinfo=from_zone) 

# Convert time zone 
central = utc.astimezone(to_zone) 
+0

Einmal bekomme ich mal die th Ebenso kann ich die gleiche Konvention für die Umrechnung in die Epoche verwenden: 'Muster = '% d.% m.% Y% H:% M:% S' epoch = int (Zeit.mkZeit (Zeit.Str.Zeit (gmt, Muster))) print epoch' – user3498593

+0

Nice Snippet, jedoch letzte Zeile: 'central = ...' ist seltsam seit ''America/New_York'' ist Eastern Time Zone in den USA. Central ist für Chicago und jene Längen im mittleren Westen –