带日期时间段的日期时间算术
Datetime arithmetics with day periods
鉴于 TZ 感知 datetime
,我想在同一时区(不一定是相同的偏移量)中找到前一天同一时间的日期时间。
我想出了以下解决方案。
tz = pytz.timezone("Europe/Paris")
myDatetime = tz.localize(datetime.datetime(year=2019, month=10, day=27, hour=22))
print(myDatetime) # 2019-10-27 22:00:00+01:00
# separate into date and time
mydate = myDatetime.date()
time = myDatetime.time()
# find previous day
previous_date = mydate - datetime.timedelta(days=1)
print(previous_date) # 2019-10-26
previous_day = tz.localize(datetime.datetime.combine(date=previous_date, time=time))
print(previous_day) # 2019-10-26 22:00:00+02:00
有没有更简单、测试更好、更标准的方法来做同样的事情?
图书馆?
解决方案:
tz = pytz.timezone("Europe/Paris")
myDatetime = tz.localize(datetime.datetime(year=2019, month=10, day=27, hour=22))
print(myDatetime) # 2019-10-27 22:00:00+01:00
previous_date = myDatetime - datetime.timedelta(days=1)
print(previous_date) #2019-10-26 22:00:00+01:00
希望这是您的要求。
我想这就是您要找的。
myNewDatetime = tz.localize((myDatetime.replace(tzinfo=None) + datetime.timedelta(days=-1)))
提醒一下,我认为您应该更明确地提出您的问题,因为问题实际上是夏令时(我不知道您所说的偏移量是什么意思,但从您选择的日期开始就明白了)。
鉴于 TZ 感知 datetime
,我想在同一时区(不一定是相同的偏移量)中找到前一天同一时间的日期时间。
我想出了以下解决方案。
tz = pytz.timezone("Europe/Paris")
myDatetime = tz.localize(datetime.datetime(year=2019, month=10, day=27, hour=22))
print(myDatetime) # 2019-10-27 22:00:00+01:00
# separate into date and time
mydate = myDatetime.date()
time = myDatetime.time()
# find previous day
previous_date = mydate - datetime.timedelta(days=1)
print(previous_date) # 2019-10-26
previous_day = tz.localize(datetime.datetime.combine(date=previous_date, time=time))
print(previous_day) # 2019-10-26 22:00:00+02:00
有没有更简单、测试更好、更标准的方法来做同样的事情?
图书馆?
解决方案:
tz = pytz.timezone("Europe/Paris")
myDatetime = tz.localize(datetime.datetime(year=2019, month=10, day=27, hour=22))
print(myDatetime) # 2019-10-27 22:00:00+01:00
previous_date = myDatetime - datetime.timedelta(days=1)
print(previous_date) #2019-10-26 22:00:00+01:00
希望这是您的要求。
我想这就是您要找的。
myNewDatetime = tz.localize((myDatetime.replace(tzinfo=None) + datetime.timedelta(days=-1)))
提醒一下,我认为您应该更明确地提出您的问题,因为问题实际上是夏令时(我不知道您所说的偏移量是什么意思,但从您选择的日期开始就明白了)。