为什么我的python datetime对象(从时间戳创建)不会自动创建为UTC?

为什么我的python datetime对象(从时间戳创建)不会自动创建为UTC?,python,Python,我从Javascript中获取UTC时间戳并将其传递给python代码。我想将该日期存储为datetime,因此我使用dt=datetime.datetime.fromtimestamp(int(starttime)/1000)构造它。我检查时间戳,它是特定日期UTC上午12:00的时间戳。但是,当我打印出这个新创建的datetime对象时,它的打印时间是前一天的19:00 这里显然存在一些时区问题,但我认为默认值应该始终为UTC(显然我认为是错误的)。我如何使其始终在UTC下运行,而不是进行一

我从Javascript中获取UTC时间戳并将其传递给python代码。我想将该日期存储为datetime,因此我使用
dt=datetime.datetime.fromtimestamp(int(starttime)/1000)
构造它。我检查时间戳,它是特定日期UTC上午12:00的时间戳。但是,当我打印出这个新创建的datetime对象时,它的打印时间是前一天的19:00


这里显然存在一些时区问题,但我认为默认值应该始终为UTC(显然我认为是错误的)。我如何使其始终在UTC下运行,而不是进行一些奇怪的时区转换?

来自时间戳的
文档(重点是我的):

返回与POSIX时间戳对应的本地日期和时间,例如由time.time()返回。如果可选参数tz为None或未指定,时间戳将转换为平台的本地日期和时间,并且返回的datetime对象为naive

因此,
fromtimestamp
确实会返回本地时区的值(而不是预期的UTC)。你想要的是:


starttime
变量包含什么?@DavidRobinson在一个示例中,它包含1408060800000
starttime = 1408060800000
dt = datetime.datetime.utcfromtimestamp(int(starttime) / 1000)

dt  # returns the UTC time you expected:
# datetime.datetime(2014, 8, 15, 0, 0)