【问题标题】:How to convert HH:MM:SS time to decimal in Python如何在 Python 中将 HH:MM:SS 时间转换为十进制
【发布时间】:2021-08-12 05:21:27
【问题描述】:

假设我将以下日期和时间 (2017 年 6 月 12 日 07:10:43.340) 存储在 dateime 对象中。从中我有一个timestamp 对象,如下:

from datetime import *

timeH = datetime(2017, 6,12, 7, 10, 43, 340)
timeHstamp = timeH.timestamp()

我想要获得的只是时间的十进制表示。那是 7.178 我手动计算的,将秒除以 60 (43.34/60),加上分钟 (10+0.7223),将总分钟除以 60 (10.7223/60),然后添加到小时 (7+0.178)。我知道我可以编写一个自定义函数来准确输出我需要的内容。但是,我想知道是否有任何可用的方法可以实现这一点。

我搜索过stackoverflow和其他网站;但是,似乎没有在 Python 中执行此操作的函数。这篇文章提供了类似的东西,但在 Matlab Convert hh:mm time to decimal time (Matlab)

【问题讨论】:

  • 我检查了那个帖子。这不是我在这里要问的。正如我解释的那样,该帖子没有使用任何解决问题的内置函数。谢谢。
  • 如果内置函数不存在,你必须使用什么?
  • @blhsing 这正是我要问的:是否有内置函数(有人知道但我不知道)?
  • 不,没有。所有 Python 时间函数都以秒为单位返回数字时间。 timeH.timestamp() / 3600 % 24 的简单转换太简单了,无法转换为单独的内置函数。

标签: python datetime time


【解决方案1】:

一种使用datetime.combine的方式:

(datetime.combine(date.min, timeH.time()) - datetime.min).total_seconds()/3600

输出:

7.178611205555555

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-12
    • 2016-05-29
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    • 2015-03-12
    相关资源
    最近更新 更多