时区和纪元

2024-10-02 00:30:11 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的问题,我有两次输入Python,一次在EST,另一次在GMT,我需要把它们都转换成epoch并进行比较。从我把EST转换成epoch时的样子来看,它应该和我想的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

Tags: importdatetimedatetimeintpatternestprint
1条回答
网友
1楼 · 发布于 2024-10-02 00:30:11

所以,我觉得你搞不清什么是纪元。 Epoch是时间的表示,它计算从1970/01/01 00:00:00到给定日期的秒数。在

Epoch conversion不关心时区,实际上可以使用时区转换来获得负的Epoch时间(在http://www.epochconverter.com/播放)。在

一个真实的例子:我住在日本,所以对我来说,当地时间纪元0实际上是格林威治标准时间的-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)

相关问题 更多 >

    热门问题