如何在 Python 中查找第二天同一小时的 Unix 时间戳(包括 DST)?

2024-01-08

在Python中,我可以找到本地时间的Unix时间戳,了解时区,如下所示(使用pytz):

>>> import datetime as DT
>>> import pytz
>>> mtl = pytz.timezone('America/Montreal')
>>> naive_time3 = DT.datetime.strptime('2013/11/03', '%Y/%m/%d')
>>> naive_time3
datetime.datetime(2013, 11, 3, 0, 0)
>>> localized_time3 = mtl.localize(naive_time3)
>>> localized_time3
datetime.datetime(2013, 11, 3, 0, 0, tzinfo=<DstTzInfo 'America/Montreal' EDT-1 day, 20:00:00 DST>)
>>> localized_time3.timestamp()
1383451200.0

到目前为止,一切都很好。naive_time不知道时区,而localized_time知道现在是 2013/11/03 午夜在蒙特利尔,所以 (UTC) Unix 时间戳很好。这个时区也是我当地的时区,这个时间戳看起来是正确的:

$ date -d @1383451200
Sun Nov  3 00:00:00 EDT 2013

现在,11 月 3 日 2:00 蒙特利尔的时钟向后调整了一小时,因此那天我们多了一个小时。这意味着这里有,25 hours2013年11月3日至2013年11月4日期间。这表明:

>>> naive_time4 = DT.datetime.strptime('2013/11/04', '%Y/%m/%d')
>>> localized_time4 = mtl.localize(naive_time4)
>>> localized_time4
datetime.datetime(2013, 11, 4, 0, 0, tzinfo=<DstTzInfo 'America/Montreal' EST-1 day, 19:00:00 STD>)
>>> (localized_time4.timestamp() - localized_time3.timestamp()) / 3600
25.0

现在,我正在寻找一种简单的方法来获得localized_time4对象来自localized_time3,知道我想要获得下一个本地化日期同一时间(此处,午夜)。我试过timedelta,但我相信它不知道时区或 DST:

>>> localized_time4td = localized_time3 + DT.timedelta(1)
>>> localized_time4td
datetime.datetime(2013, 11, 4, 0, 0, tzinfo=<DstTzInfo 'America/Montreal' EDT-1 day, 20:00:00 DST>)
>>> (localized_time4td.timestamp() - localized_time3.timestamp()) / 3600
24.0

我的目的是获取有关每个当地时间的 Unix 时间戳存储的日志条目的信息。当然,如果我使用localized_time3.timestamp()并添加24 * 3600在这里(这将与localized_time4td.timestamp()),我会错过之间发生的所有日志条目localized_time4td.timestamp() and localized_time4td.timestamp() + 3600.

换句话说,我正在寻找的函数或方法应该知道何时向 Unix 时间戳添加 25 小时、24 小时或 23 小时,具体取决于 DST 转变的时间。


不使用新包:

def add_day(x):
    d = x.date()+DT.timedelta(1)
    return mtl.localize(x.replace(year=d.year, month=d.month, day=d.day, tzinfo=None))

完整脚本:

import datetime as DT
import pytz
import calendar
mtl = pytz.timezone('America/Montreal')
naive_time3 = DT.datetime.strptime('2013/11/03', '%Y/%m/%d')
print repr(naive_time3)
#datetime.datetime(2013, 11, 3, 0, 0)
localized_time3 = mtl.localize(naive_time3)
print repr(localized_time3)
#datetime.datetime(2013, 11, 3, 0, 0, tzinfo=<DstTzInfo 'America/Montreal' EDT-1 day, 20:00:00 DST>)
print calendar.timegm(localized_time3.utctimetuple())
#1383451200.0
def add_day(x):
    d = x.date()+DT.timedelta(1)
    return mtl.localize(x.replace(year=d.year, month=d.month, day=d.day, tzinfo=None))
print repr(add_day(localized_time3))
#datetime.datetime(2013, 11, 4, 0, 0, tzinfo=<DstTzInfo 'America/Montreal' EST-1 day, 19:00:00 STD>)

(calendar适用于 Python2。)

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

如何在 Python 中查找第二天同一小时的 Unix 时间戳(包括 DST)? 的相关文章

  • Python 中的 Flask 错误:“无法导入 webapp”

    我正在尝试运行 Flask 但是 每当我输入 flask run 时 都会出现错误 Could not import webapp 作为参考 我正在使用 Visual Studio Code 并运行以下代码 from flask impor
  • Python requests_toolbelt MultipartEncoder 文件名

    使用 requests toolbelt 以多部分形式上传大文件 我构建了一个方法 可以成功上传文件 但是我无法访问发布的文件名 如何访问服务器上的文件名 client side file open Volumes Extra test m
  • 如何从字典构造defaultdict?

    如果我有d dict zip range 1 10 range 50 61 我怎样才能建立一个collections defaultdict出于dict 唯一的论点defaultdict似乎采取的是工厂功能 我必须初始化然后再经历原来的d并
  • 有没有办法使用 Mayavi 填充陀螺仪表面的一侧?

    我正在使用 Mayavi 绘制陀螺仪的等值面 我的问题是我需要通过填充两个生成区域的一侧来获得更坚固的结构 在下面的图片中 您可以看到我生成的等值面的外观以及填充一侧后的外观 我生成的等值面 它应该是什么样子 等值面可以通过以下方程生成 U
  • pandas 使用查询功能检查列是否为空

    我有 pandas 数据框 我想在它的查询函数上执行 isnull 或 not isnull 条件 如下所示 In 67 df data pd DataFrame a 1 20 None 40 50 In 68 df data Out 68
  • Python:合并嵌套列表

    初学者在这里 我有 2 个要合并的嵌套列表 list1 a b c d e f g h list2 p q r s t u v w 我正在寻找的输出是 list3 a p q b c r s d e t f g h u v w 这可以在没有
  • Pythonic方式逐行读取文件?

    以下两种方法中逐行读取文件的 Pythonic 方法是什么 with open file r as f for line in f print line or with open file r as f for line in f read
  • chrome_options.binary_location() TypeError: 'str' 对象不可调用

    我希望每个人都好 我是 python 新手 我尝试运行这段代码 但我不明白问题是什么以及如何解决这个问题 我的代码是 from selenium import webdriver from time import sleep url raw
  • Python - 重写 print()

    我正在使用 mod wsgi 想知道是否可以覆盖 print 命令 因为它没用 这样做是行不通的 print myPrintFunction 因为这是一个语法错误 Print 不是 Python 2 x 中的函数 因此这不能直接实现 但是
  • 在heroku实例上安装PIL

    我创建了一个python flask托管在heroku上的应用程序 我很有趣PILpython 中的图像库 我无法安装PIL在heroku实例中 我尝试过以下几种方法 方法一 Added PIL 1 1 7 in requirements
  • 在 Spark-submit 上的 _find_and_load 中获取文件“”,第 991 行

    我目前使用的是Python 3 7 9 spark spark 2 4 6 bin hadoop2 6 在这个项目 venv 中 我的设置为 kafka python 2 0 2 pip 21 2 4 py4j 0 10 9 pyspark
  • 在 matplotlib 中查看然后自动关闭图形?

    我必须检查我的参数设置是否正确 因此我需要绘制许多图 为了绘制这些图 我选择使用 matplotlib 每次检查后 我需要单击左上角的关闭按钮 这很微不足道 那么有没有什么方法可以让剧情在3 5秒左右显示并且无需点击就自动关闭呢 我知道关于
  • 无法写入文本文件

    我正在运行一些测试并需要写入文件 当我运行测试时open file r 不写入文件 测试脚本如下 class GetDetailsIP TestGet def runTest self self category PTZ try This
  • Pandas 数据框列总和并收集结果

    给定以下数据框 import pandas as pd p1 name willy age 11 interest Lego p2 name willy age 11 interest games p3 name zoe age 9 int
  • 如何在这个可嵌套的 For 循环中实现 Robot Framework 风格的变量?

    我在 Robot Framework 中见过很多 嵌套 For 循环 主要是创建一个内部带有 For 循环的关键字 然后在另一个 For 循环中调用该关键字 我使用 Python 2 7 13 制作了一个可嵌套的 For 循环 但因为它主要
  • Python:从字符串访问变量[重复]

    这个问题在这里已经有答案了 这可能是非常基本和简单的事情 我可能只是在谷歌上搜索错误的术语 但希望这里有人可以帮助我 我仍然是编程的初学者 这从这个问题中可能是显而易见的 我正在寻找一种从字符串访问变量的方法 像这样 A1 B1 C1 my
  • 使用 Python 3.7+ 中的 wfastcgi 以及 Numpy、Pandas 等在 IIS 上部署 Python Flask 应用程序

    使用 wfastcgi 在 IIS 上部署 python 3 7 Flask 或 Dash 应用程序时 有许多很棒的教程可以让 hello work 程序正常运行 例如 https medium com bilalbayasut deplo
  • 在 matplotlib 中添加新的导航模式

    我正在编写一个 wx matplotlib 应用程序 并且在向 matplotlib 导航工具栏添加新工具时遇到相当大的困难 基本上我想添加选择工具 选取框 套索等 以切换受控子图的鼠标模式 到目前为止 我还没有找到任何功能可以让我轻松地做
  • 是否可以使用 Google BERT 来计算两个文本文档之间的相似度?

    是否可以使用 Google BERT 来计算两个文本文档之间的相似度 据我了解 BERT 的输入应该是有限大小的句子 一些作品使用 BERT 来计算句子的相似度 例如 https github com AndriyMulyar semant
  • 将 sudo 与 Python 脚本结合使用

    我正在尝试编写一个小脚本来在每次执行脚本时安装 VirtualBox 共享文件夹 我想用Python 来做这件事 因为我正在尝试学习它来编写脚本 问题是我需要特权才能启动挂载命令 我可以将脚本作为 sudo 运行 但我更喜欢它自己创建 su

随机推荐

  • 使用 CSS 将按钮放置在另一个按钮之上

    我在这里需要一些高级 CSS 帮助 我有一个登录按钮和一个注册按钮 我只想一次显示一个 如果用户未登录 注册按钮应出现在登录按钮的顶部 我们有一个复杂而疯狂的后端 如果服务器认为用户未登录 它将生成注册按钮的代码 但是两者都会由服务器输出
  • Windows Python:使用区域设置模块更改编码

    使用Python 2 7 我正在编写一个抽象的网络抓取工具 在显示 打印 某些字符时遇到问题 我收到回溯错误 UnicodeEncodeError ascii codec can t encode character u u2606 in
  • 什么是无符号字符?

    在 C C 中 什么是unsigned char是用来 和普通的有什么不同char 在C 中 有以下三种distinct字符类型 char signed char unsigned char 1 char 如果您使用字符类型text 使用不
  • 如何从组件模板将数组作为 Input() 传递?

    我需要使用绑定将值数组传递给组件 例如 Component selector my component template div div export class MyComponent Input data any 然而 Angular
  • Prolog 中的算术,使用 2 的幂表示数字

    我有两个数字 让我们命名它们N and K 我想写N using K2 的幂 例如如果N 9 and K 4 then N可能N 1 2 2 4 2 0 2 1 2 1 2 2 我的程序应该输出类似的内容N 1 2 2 4 我习惯了C 我在
  • WPF 应用程序的单元测试失败,并出现 NotSupportedException“无法识别 Uri 前缀”

    我目前正在编写单元测试 在这个位置测试失败 并出现 NotSupportedException 无法识别 URI 前缀 经过小型研究 我已经注册了 pack Uri 方案 但它没有帮助 return WaitImageThumbnail W
  • 如何将工作负载项与已提交的更改链接起来?

    我正在使用 Git for Visual Studio Online 我添加了一个产品待办事项列表项 我添加了一些文件并提交更改 由于某种原因没有链接 我对该项目做了更多的提交并同步 我的第一个更改未与待办日志项链接 它仍然在任务下显示为待
  • 如何获取 grep 命令的输出(Python)

    我有一个输入文件 test txt 为 host dc2000 host 192 168 178 2 我想通过使用以下方式获取这些机器的所有地址 grep host root test txt 依此类推 我通过python获得命令输出 im
  • 从字符串Python中获取列表[重复]

    这个问题在这里已经有答案了 例如 我有一个字符串 1 2 3 我怎样才能让她翻一张清单 1 2 3 引号字符串 如果有其他字符 则保留字符串 我怎样才能做到这一点 例子 input output 1 2 3 1 2 3 input outp
  • 使用 DbSet 和 IQueryable 以及 NSubstitute 操作对象会返回错误

    我想用N替补 http nsubstitute github io 通过模拟对 Entity Framework 6 x 进行单元测试DbSet http msdn microsoft com en us library gg696460
  • 如何创建可加载 Lua(适用于 Windows)的自定义 .NET dll?

    我们正在 NET 框架中做一个项目 并希望稍后可以将其大部分功能用于 Lua 脚本 我想我可以在 LuaInterface 的帮助下编译一个 dll 并将其加载到 Lua 脚本中 但不知怎的 它不起作用 所做的工作如下 require lu
  • 使用Web浏览器控件通过类名获取div的内容?

    我有一个表格webBrowser1用于加载 HTML 部分包含以下行的页面的控件 div class cls Hello World div 我需要得到innerText of the div元素 我尝试了以下方法 string resul
  • Git 从index.lock 重命名为index 失败

    使用 GitHub Windows 客户端我做了一个sync将远程更改拉取到本地计算机 但在完成同步之前 我用完了磁盘空间 同步失败 现在我似乎有一堆本地更改 这些更改实际上是从原点拉取的更改 我尝试运行 git pull 但得到 C Us
  • Angular ui-grid 外部导出按钮

    我是 Angular UI GRID 的新手 我需要为导出功能创建外部按钮 例如PDF导出 and CSV 导出相似的到这张图片 https i stack imgur com kNkQH png 你知道我该怎么做吗 我还需要一个 打印 按
  • 错误:[Errno 32] 管道损坏 django

    有时 当我查看终端时 我会看到以下错误 任何人都可以让我知道它正在显示以及如何避免它 Exception happened during processing of request from 127 0 0 1 39444 Tracebac
  • 在 ASP.NET 中绑定 jqGrid 时出现问题

    我是使用 jqGrid 和 jquery 的新手 我无法将从 webmethod 检索到的 json 数据绑定到 jqGrid 上 我还使用 firebug 进行交叉验证 并且我正在从中接收数据 关于这方面的一些帮助将会很棒 我还想知道是否
  • 是否可以更新/覆盖 Airflow [‘dag_run’].conf?

    我们通常使用以下方式启动 Airflow DAG trigger dagCLI 命令 例如 airflow trigger dag my dag conf field1 1 field2 2 我们在操作员中使用以下命令访问此配置contex
  • 如何将参数传递给 jQuery UI 对话框事件处理程序?

    我目前正在尝试连接 jQuery UI 对话框 以便我可以使用它在我的页面上创建新项目并修改页面上已有的项目 我在前者中做到了 然而 我目前正在为后一个问题而苦苦挣扎 我只是找不到一种好的方法来将要修改的项目传递到对话框 这里有一些代码可以
  • 找不到资源包异常

    我想使用一个名为的资源包strings但在运行我的主要方法时出现以下错误MainApplication java java util MissingResourceException Can t find bundle for base n
  • 如何在 Python 中查找第二天同一小时的 Unix 时间戳(包括 DST)?

    在Python中 我可以找到本地时间的Unix时间戳 了解时区 如下所示 使用pytz gt gt gt import datetime as DT gt gt gt import pytz gt gt gt mtl pytz timezo