Python-使用时间戳记,时间戳记的日期和时间比较 - python

在过去的一个小时中,我一直在研究Python文档和许多SO问题。请原谅我是Python时差之谜所困的另一个Python新手。

我的目标是确定当前时间与某个日期/时间之间的时差,而不管过去/将来如何,并返回可行的格式(例如秒)。

例如,如果输入是2:00 PM和4:00 PM(现在),我想说“-7200”,表示事件发生在两个小时前。如果输入为星期五下午4:00(现在)和星期日下午5:00,则输出应为“176400”秒,表示从现在起两天零一小时。

这是我尝试过的事情...

  • 我的第一个版本是一个函数,该函数采用字符串时间戳记并将其分段成多个变量,然后进行比较。它很笨拙,有很多错误,我想如果我将它发布在这里,我将负责抛出一个程序员。
  • 我偶然发现了这个神奇的timedelta函数,并探索了文档和SO,但我认为它不能满足我的需求。
  • 我本来想将两个时间戳都从历元开始转换为秒,然后相减,但是如果减法顺序错误(如果事件将来发生的情况不同),这将成为一个问题,并且我想将if语句添加到检查几秒钟的信号会很笨拙,并且需要避免。
  • 这是我当前的代码(对于“双向”比较,仍然需要修复),来自先前解决的SO问题:

    now = time.strftime("%a %b %d %H:%M:%S %Y")
    then = time.ctime(os.path.getmtime("x.cache"))
    tdelta = datetime.strptime(now, '%a %b %d %H:%M:%S %Y') - datetime.strptime(then, '%a %b %d %H:%M:%S %Y')
    

    我觉得我应该可以以某种方式从中抽出几秒钟,就像这个问题一样:
    Python's timedelta: can't I just get in whatever time unit I want the value of the entire difference?

    但是我对如何连接这些点一无所知。

    我该怎么做?

    参考方案

    您应该可以使用

    tdelta.total_seconds()
    

    获得您想要的价值。这是因为tdeltatimedelta对象之间的任何区别都是 datetime 对象。

    一些注意事项:

  • 多余地使用strftimestrptime。您应该能够使用 datetime.now 获取当前日期时间。
  • 同样,使用time.ctimestrptime后的工作量超出了需要。您应该能够使用 datetime 获得另一个datetime.fromtimestamp对象。
  • 因此,您的最终代码可能是

    now = datetime.now()
    then = datetime.fromtimestamp(os.path.getmtime("x.cache"))
    tdelta = now - then
    seconds = tdelta.total_seconds()
    

    Python uuid4,如何限制唯一字符的长度 - python

    在Python中,我正在使用uuid4()方法创建唯一的字符集。但是我找不到将其限制为10或8个字符的方法。有什么办法吗?uuid4()ffc69c1b-9d87-4c19-8dac-c09ca857e3fc谢谢。 参考方案 尝试:x = uuid4() str(x)[:8] 输出:"ffc69c1b" Is there a way to…

    Python GPU资源利用 - python

    我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…

    Python:图像处理可产生皱纹纸效果 - python

    也许很难描述我的问题。我正在寻找Python中的算法,以在带有某些文本的白色图像上创建皱纹纸效果。我的第一个尝试是在带有文字的图像上添加一些真实的皱纹纸图像(具有透明度)。看起来不错,但副作用是文本没有真正起皱。所以我正在寻找更好的解决方案,有什么想法吗?谢谢 参考方案 除了使用透明性之外,假设您有两张相同尺寸的图像,一张在皱纹纸上明亮,一张在白色背景上有深…

    Python sqlite3数据库已锁定 - python

    我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

    Python:如何停止多线程的numpy? - python

    我知道这似乎是一个荒谬的问题,但是我必须在与部门中其他人共享的计算服务器上定期运行作业,当我开始10个作业时,我真的希望它只占用10个核心而不是更多;我不在乎每次运行一个内核所需的时间是否更长:我只是不想让它侵犯其他人的领土,这将需要我放弃工作等等。我只想拥有10个核心,仅此而已。更具体地说,我在基于Python 2.7.3和numpy 1.6.1的Redh…