大纪元时间和时区

时间:2016-07-22 00:47:17

标签: python date time epoch

这是我的问题,我有两次我用Python,一个用于EST,另一个用于GMT。我需要将两者都转换为时代并进行比较。从我将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

1 个答案:

答案 0 :(得分: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)