Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中组合时区感知日期和时间?_Python_Timezone_Pytz - Fatal编程技术网

如何在Python中组合时区感知日期和时间?

如何在Python中组合时区感知日期和时间?,python,timezone,pytz,Python,Timezone,Pytz,我有一个日期和时间,我正试图在Python中结合起来。时间是时区感知的 然而,当我尝试合并它们时,我得到了错误的时间 import pytz from datetime import time, date NYC_TIME = pytz.timezone('America/New_York') start_date = date(2012, 7, 7) start_time = time(hour = 0, tzinfo = NYC_TIME) combined = datetime.comb

我有一个日期和时间,我正试图在Python中结合起来。时间是时区感知的

然而,当我尝试合并它们时,我得到了错误的时间

import pytz
from datetime import time, date
NYC_TIME = pytz.timezone('America/New_York')

start_date = date(2012, 7, 7)
start_time = time(hour = 0, tzinfo = NYC_TIME)
combined = datetime.combine(start_date, start_time)
print combined
print NYC_TIME.normalize(combined)

这将打印
2012-07-07 00:00:00-05:00
,标准化为
2012-07-07 01:00:00-04:00
。为什么会这样?我怎样才能避免呢?

没有日期的时间必须假定它不在夏令时。一旦你给它加上一个日期,这个假设就可以纠正了。分区偏移会发生变化,时间也会发生变化,以使其保持相同的UTC等效时间。

我通过“避免”假设您希望本地时间保持固定,即使UTC偏移因夏令时而发生变化?如果我有一个时间<代码>午夜=时间(小时=0,tzinfo=纽约时间),不管我把它放在哪一天,它都会保持在午夜。显然,事实并非如此。这很奇怪,因为如果你比较两个没有静态偏移的时区感知时间,它们会产生一个天真的时区错误,也就是说,它们拒绝假设它们是否在夏令时。