查找与 DST 时间的 timedelta 差异 (Python)

2024-01-03

给定两个日期时间,例如2020-01-01 00:00:00 and 2020-04-01 00:00:00,我想获取两个日期之间以小时数表示的时间增量由于夏令时而进行任何加法/减法。我不知道如何继续。


默认情况下,Python 的timedelta为您提供感知日期时间对象(附加时区的对象)的墙时差 - 不是绝对时间(在物理意义上;第二个为SI unit https://en.wikipedia.org/wiki/International_System_of_Units).

要获得“DST 感知”时间增量,首先确保日期时间对象本地化到某个时区(具有 DST)。然后,考虑两个日期时间对象的 UTC 偏移量;例如像

from datetime import datetime
from dateutil.tz import gettz

t0, t1 = "2020-03-07 00:00:00", "2020-03-09 00:00:00"
# to datetime object
t0, t1 = datetime.fromisoformat(t0), datetime.fromisoformat(t1)
# set appropriate timezone
tzone = gettz("US/Eastern")
t0, t1 = t0.replace(tzinfo=tzone), t1.replace(tzinfo=tzone)
# check if UTC offset changed
utcdelta = t1.utcoffset() - t0.utcoffset()
# now calculate the timedelta
td = t1 - t0 - utcdelta
print(td)
# 1 day, 23:00:00

为了进一步阅读,我推荐时区感知日期时间算术的语义 https://blog.ganssle.io/articles/2018/02/aware-datetime-arithmetic.htmlPaul Ganssle 的博客文章。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找与 DST 时间的 timedelta 差异 (Python) 的相关文章

  • 如何以“正确”的方式处理带有空字节的 Python unicode 字符串?

    Question PyWin32 似乎很乐意将 null 终止的 unicode 字符串作为返回值 我想以 正确 的方式处理这些字符串 假设我得到一个像这样的字符串 u C Users Guest MyFile asy x00 x00sy
  • 为什么删除临时文件时出现WindowsError?

    我创建了一个临时文件 向创建的文件添加了一些数据 已保存 然后尝试将其删除 但我越来越WindowsError 编辑后我已关闭该文件 如何检查哪个其他进程正在访问该文件 C Documents and Settings Administra
  • 保留完整姓氏,在 pandas 列中获取名字的首字母(如果有的话,还有中间名)

    我有一个 pandas 数据框 其中有一列表示几位网球运动员的姓氏和姓名 如下所示 Player 0 Roddick Andy 1 Federer Roger 2 Tsonga Jo Wilfred 我想保留完整的姓氏并获取姓名的首字母和中
  • 检查 Python 中的可迭代对象中的所有元素的谓词是否计算为 true

    我很确定有一个常见的习语 但我无法通过谷歌搜索找到它 这是我想做的 用Java Applies the predicate to all elements of the iterable and returns true if all ev
  • 如何在Python中同时运行两只乌龟?

    我试图让两只乌龟一起移动 而不是一只接着另一只移动 例如 a turtle Turtle b turtle Turtle a forward 100 b forward 100 但这只能让他们一前一后地移动 有没有办法让它们同时移动 有没有
  • pyspark 数据框中的自定义排序

    是否有推荐的方法在 pyspark 中实现分类数据的自定义排序 我理想地寻找 pandas 分类数据类型提供的功能 因此 给定一个数据集Speed列 可能的选项是 Super Fast Fast Medium Slow 我想实现适合上下文的
  • Python3.0 - 标记化和取消标记化

    我正在使用类似于以下简化脚本的内容来解析较大文件中的 python 片段 import io import tokenize src foo bar src bytes src encode src io BytesIO src src l
  • Pandas:如果单元格包含特定文本则删除行

    pandas 中的这段代码不起作用 如果该列包含提供的任何文本 数字 我希望它删除该行 目前 我只能在单元格与我的代码中传递的确切文本匹配时才能使其工作 因为它只删除显示 Fin 的单元格不是金融或金融 df2 df df Team Fin
  • 搜索多个字段

    我想我没有正确理解 django haystack 我有一个包含多个字段的数据模型 我希望搜索其中两个字段 class UserProfile models Model user models ForeignKey User unique
  • Keras:如何保存模型或权重?

    如果这个问题看起来很简单 我很抱歉 但是阅读 Keras 保存和恢复帮助页面 https www tensorflow org beta tutorials keras save and restore models https www t
  • 使用 python 绘制正值小提琴图

    我发现小提琴图信息丰富且有用 我使用 python 库 seaborn 然而 当应用于正值时 它们几乎总是在低端显示负值 我发现这确实具有误导性 尤其是在处理现实数据集时 在seaborn的官方文档中https seaborn pydata
  • 将seaborn.palplot轴添加到现有图形中以可视化不同调色板

    将seaborn人物添加到子图中是usually https seaborn pydata org examples cubehelix palette html创建图形时通过传递 ax 来完成 例如 sns kdeplot x y cma
  • Anaconda 无法导入 ssl 但 Python 可以

    Anaconda 3 Jupyter笔记本无法导入ssl 但使用Atom终端导入ssl没有问题 我尝试在 Jupyter 笔记本中导入 ssl 但出现以下错误 C ProgramData Anaconda3 lib ssl py in
  • 动态过滤 pandas 数据框

    我正在尝试使用三列的阈值来过滤 pandas 数据框 import pandas as pd df pd DataFrame A 6 2 10 5 3 B 2 5 3 2 6 C 5 2 1 8 2 df df loc df A gt 0
  • 当数据库不是 Django 模型时,是否可以使用数据库中的表?

    是否可以从应用程序数据库中的表获取查询集 该表不是应用程序中的模型 如果我有一个不是名为 cartable 的模型的表 从概念上讲 我想这样做 myqueryset cartable objects all 有没有相对简单的方法来做到这一点
  • Elasticsearch 通过搜索返回拼音标记

    我用语音分析插件 https www elastic co guide en elasticsearch plugins current analysis phonetic html由于语音转换 从弹性搜索中进行一些字符串匹配 我的问题是
  • 如何与其他用户一起使用 pyenv?

    如何与其他用户一起使用 pyenv 例如 如果我在用户 test 的环境中安装了 pyenv 则当我以 test 身份登录时可以使用 pyenv 但是 当我以其他用户 例如 root 身份登录时如何使用 pyenv 即使你这么做了 我也会s
  • 多个对象以某种方式相互干扰[原始版本]

    我有一个神经网络 NN 当应用于单个数据集时 它可以完美地工作 但是 如果我想在一组数据上运行神经网络 然后创建一个新的神经网络实例以在不同的数据集 甚至再次同一组数据 上运行 那么新实例将产生完全错误的预测 例如 对 XOR 模式进行训练
  • 查找总和为给定数字的值组合的函数

    这个帖子查找提供的 Sum 值的组合 https stackoverflow com a 20194023 1561176呈现函数subsets with sum 它在数组中查找总和等于给定值的值的组合 但由于这个帖子已经有6年多了 我发这
  • 如何为不同操作系统/Python 版本编译 Python C/C++ 扩展?

    我注意到一些成熟的Python库已经为大多数架构 Win32 Win amd64 MacOS 和Python版本提供了预编译版本 针对不同环境交叉编译扩展的标准方法是什么 葡萄酒 虚拟机 众包 我们使用虚拟机和Hudson http hud

随机推荐

  • 按 Enter 键时使用 ajax 发送数据

    我有这样的表格
  • 错误:require.paths 被删除。当运行node.js和socket.io时

    javascript Iv 在运行 github 上的 socket io 示例时遇到错误https github com LearnBoost socket io git https github com LearnBoost socke
  • 制作随机整数数组

    我尝试生成一个随机 int 值数组 其中随机值在最小值和最大值之间取 到目前为止我想出了这段代码 int Min 0 int Max 20 int test2 new int 5 Random randNum new Random fore
  • 刷新关系而不重新加载模型

    我有这样的情况 1 model 模型 where someCondition 在上面的代码之后 我对 model 子关系进行了一些更新 模型具有设置关系 因此我更新它们并将它们保存到数据库中 然后我稍后尝试访问 model gt setti
  • Spring transactionManager 正在回滚,而 testException=[null]!

    为什么事务没有回滚Exception 未保存该对象 我定义了交易参数 例如 Transactional value transactionManager timeout 30 rollbackFor java lang Exception
  • 如何将网站上不存在的链接重定向回主页

    我的问题是如何将我的网站上任何不存在的链接重定向回主页 例如 想象一下 如果用户输入 我的网站上有一个名为 pets 的页面 http mywebsite com pets http mywebsite com petsd http myw
  • 如何制作flutter自定义下拉按钮?

    我要定制DropDownButton https docs flutter io flutter material DropdownButton class html 这样它就不会渲染内容DropdownItem https api flu
  • 如果高度不同,如何使用 Twitter Bootstrap 制作响应式照片网格

    如何使用 Twitter Bootstrap 3 的 img 响应式 图像 但允许它们具有设定的高度 以便照片网格流动 与下图不同 我尝试过设置图像高度属性和最大高度属性 但它似乎会忽略这些属性 除非我用 重要 设置它的高度 但它们看起来很
  • 使用 @FindBy 注解在元素内查找元素。

    例如 WebElement parentEle driver findElement By id xyz WebElement childEle parentEle findElement By id abc childEle click
  • 多次上传php脚本并存储在mysql数据库中

    我是新来的 我需要将多个 mp3 文件上传到一个目录并将它们存储在 mysql 的 音频 表中 我正在使用这个脚本 但它只适用于一个文件 每次只处理一个曲目很烦人 这就是为什么我需要多个上传脚本 我希望只写每首曲目的标题 如下所示 php
  • 如何在 docker-compose.yml 中为命名卷设置主机上的路径

    下面的示例创建dbdata命名卷并在内部引用它db服务 version 2 services db image mysql volumes dbdata var lib mysql volumes dbdata driver local f
  • 调用成员函数指针

    我在调用结构体内部的函数指针时遇到问题 我之前在类之外使用过这种方法 但现在我正在使用指向其他类方法的函数指针在类方法中尝试它 我收到编译器错误 这是我的课程 class Myclass int i void cmd1 int void c
  • 使用 Appbar + Drawer 时遇到问题(Material UI + ReactJS)

    我正在尝试使用 ReactJS Material UI 制作我的第一个应用程序 但没有成功 我唯一想做的就是 当我单击栏上的按钮时 显示左侧抽屉 我有以下代码 App jsx import React from react import M
  • 将提交从一个存储库推送到另一个存储库

    我是否可以将一个提交从一个 Git 存储库推送到一个分支anotherGit 存储库 例如 我有一个承诺aaaa在存储库 A 中提交aaaa位于一个名为 测试 的分支中 我想推动提交aaaa到一个名为 稳定 的分支 该分支位于另一个名为存储
  • Angular2 测试在模拟服务时失败

    尝试测试具有调用 REST API 的服务依赖项的组件 制作了服务的模拟版本 并使用扩展真实服务的类 现在 如果我用模拟的提供者覆盖提供者 业力报告者就会出现奇怪的错误 第一个 404 表示 2 个不存在的文件 实际上不应该存在 然后是 o
  • jQuery 查找输入类型(也适用于选择)

    我需要找到单选按钮 文本和选择的输入类型 很容易找到任何东西的输入类型
  • 将文本输入解释为 PHP

    我想让用户测试我的 PHP 类 其中包括裁剪图像和调整图像大小 我希望他们在文本字段中编写 PHP 代码 发送表单 然后运行他们的代码 我怎样才能做到这一点 或者是否还有其他安全的方法可以让用户 任何人 演示 PHP 类 我将使用几乎没有权
  • 无法在 Python 中打乱列表

    这是我的清单 biglist title U2 link u2 com title beatles link beatles com print random shuffle biglist 那不行 它不返回任何内容 random shuf
  • 暂时更改 Sitecore 项目的布局

    使用此代码 我设法更改当前项目的渲染 然而 这在 Sitecore 中永久地改变了它 这些变化可以在 CMS 中看到 而不是像我预期的那样暂时改变 void ReplaceLayout Item item if item null retu
  • 查找与 DST 时间的 timedelta 差异 (Python)

    给定两个日期时间 例如2020 01 01 00 00 00 and 2020 04 01 00 00 00 我想获取两个日期之间以小时数表示的时间增量由于夏令时而进行任何加法 减法 我不知道如何继续 默认情况下 Python 的timed