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