2016-07-22 68 views
0

這是我的問題,我有兩次我餵養Python,一個在EST和其他格林尼治標準時間。我需要將兩者都轉換爲紀元並比較它們。根據我將EST轉換爲時代時的樣子,它應該轉換成我認爲與GMT相當的時間。它看起來不是這樣:大紀元時間和時區

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

你不需要噸將它們轉換爲劃時代對它們進行比較:http://stackoverflow.com/questions/8142364/how-to-compare-兩個日期 否則,您可能會發現此資源具有指導意義:http://www.idiotinside.com/2015/03/14/working-with-date-and-time-python-892/ – Aif

+0

我應該澄清一下,我認爲歷史轉換會更容易,因爲我後來做了這個比較:'if(epoch - 120) user3498593

+0

我也將在Wireshark中做這個過濾器,這很容易做到紀元 – user3498593

回答

0

所以,我認爲你在這裏混淆了什麼時代。 Epoch是一個時間表示法,用於計算從1970/01/01 00:00:00到指定日期的秒數。

時代轉換並不關心時區,實際上您可以通過時區轉換來實現負時代(在http://www.epochconverter.com/上玩耍)。

一個真實的例子:我住在日本,因此當地時間0對我來說實際上是GMT時代的-32400。

你需要做的是做一些像in this question首先在時區之間轉換,然後做日曆到時代轉換。

下面是公認的答案一些代碼:

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

一旦我獲得了時間th同樣,我可以使用相同的慣例轉換爲紀元:'pattern ='%d。%m。%Y%H:%M:%S'epoch = int(time.mktime(time.strptime(gmt,圖案))) print epoch' – user3498593

+0

不錯的代碼片段,但是最後一行:'central = ...'很奇怪,因爲'America/New_York''是美國的東部時區。中央是芝加哥,中西部是那些經度 –