python - 日期时间算术与日期间
问题描述
给定一个 TZ-aware 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
有没有更简单、更好测试、更标准的方法来做同样的事情?
图书馆?
解决方案
我想这就是你要找的。
myNewDatetime = tz.localize((myDatetime.replace(tzinfo=None) + datetime.timedelta(days=-1)))
作为提醒,我认为您应该更明确地提出您的问题,因为问题实际上是 DST(我不知道您所说的偏移量是什么意思,但从您选择的日期开始计算)。
推荐阅读
- elasticsearch - Elasticserach 未通过 logstash 为新管道创建索引
- git - 我们可以在不同的远程存储库中设置分支的上游吗
- javascript - 从字符串中替换不需要的字符串?
- python - 如何在 Matplotlib 中的堆叠水平条形图中显示数据值
- javascript - Javascript按多列过滤数组
- reactjs - 使用 Firebase 进行身份验证 PostegreSQL 数据库
- android - 无法为 com.google.android.gms.tasks.OnSuccessListener 添加依赖项
- python-3.x - 如何使用 beautifulsoup 查找没有特定属性的标签?
- validation - 如果单元格在谷歌表格中留空,则创建警告消息
- jquery - 更改 JQuery 以影响按钮的颜色,而不是背景?