转换为/从纪元时间戳转换为什么我获得了一个小时?

时间:2014-08-19 18:51:28

标签: python linux postgresql timezone

example = datetime.datetime(2014, 8, 19, 14, 18, 49, 435413, tzinfo=psycopg2.tz.FixedOffsetTimezone(offset=-240, name=None))

datetime.datetime.fromtimestamp(time.mktime(example.timetuple()))
datetime.datetime(2014, 8, 19, 15, 18, 49)

你可以看到,当我构建example时,它是14:18(下午2:18)。当我将它转换为utc时代,然后再回来时,它是15:18(下午3:18)。

我正在使用psycopg2' FixedOffsetTimezone,因为此行值来自数据库。

尝试在UTC中执行所有操作会产生更令人困惑的结果。

datetime.datetime.utcfromtimestamp(time.mktime(example.utctimetuple()))
datetime.datetime(2014, 8, 19, 23, 18, 49)

在我的第一个例子中,我的额外时间到了哪里?我怀疑夏令时,夏令时,但我的机器(和Python)产生了正确的日期:

datetime.datetime.now()
datetime.datetime(2014, 8, 19, 14, 49, 21, 2429)

从shell开始:

> date
Tue Aug 19 14:49:49 EDT 2014

0 个答案:

没有答案