【问题标题】:Converting time format , string to float将时间格式,字符串转换为浮点数
【发布时间】:2019-06-20 00:53:24
【问题描述】:

如何使用 python 将时间字符串“15:04:23”(小时:分钟:秒)转换为浮点数 150423? 以下步骤已经完成:

最初,我有自 01.01.2000 以来格式为秒的时间/日期信息。我使用以下函数对其进行了转换

 t_temp = datetime(2000,1,1)+timedelta(seconds = t)

然后我提取时间

t_temp.strftime("%H:%M:%S")

... 这给了我字符串

【问题讨论】:

  • 为什么要为"'15:04:23' " 设置一个浮点数150423?这没有任何意义。它只是意味着您可以对此进行数学运算,例如计算两次之间的差异,但你不能。如果要将时间作为数值,请使用适当的时间戳。
  • 我需要这个来比较两个不同的数据集;)
  • 你的意思是other数据集中的日期都是这种格式,你想把你的转换成同样的格式吗?不过,查看生成其他浮动日期的代码并修复它可能更有意义。
  • 这是不可能的,因为其他数据集是由欧洲中期天气预报中心制作的。我无权访问他们的代码;)

标签: python string date datetime strftime


【解决方案1】:

这样做

time = float(t_temp.replace(":",""))

这将删除冒号并将字符串类型转换为 float.Works 在 python2 和 python3 中

hereare两个有用的链接

【讨论】:

  • 不是我的反对意见,但这可能是删除那些: 的最麻烦和低效的方法...最好只使用str.replace,或者在strftime 中使用不同的格式第一名。
  • @tobias_k 我试图以易于理解的方式解决问题中的问题。但你是对的。我会做出相应的改变。
【解决方案2】:

只需省略冒号并将结果转换为浮点数:

float(t_temp.strftime("%H%M%S"))

我不知道这真的有多大意义,但你去吧。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 2013-11-11
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    • 2014-09-25
    • 1970-01-01
    相关资源
    最近更新 更多