【问题标题】:How to turn a timestamp into a float in Python?如何在 Python 中将时间戳转换为浮点数?
【发布时间】:2021-05-17 07:20:23
【问题描述】:

我有一个包含多个时间戳的列表,格式为 2021-04-13 11:03:13+02:00

现在我想使用它们,但是我收到错误 ValueError: could not convert string to float

有没有办法让我把它们变成一个合适的浮点值,而不会丢失实际的日期和时间值?

【问题讨论】:

  • 在这个例子中你期望得到哪个浮点数?
  • 我不知道我是否正确理解了您的问题,但我正在使用熊猫数据框,并且在尝试使用它告诉我的时间戳时,显然他需要浮点格式。而且由于我想将时间戳用作模型的标签,因此它们应该在转换为浮点数时保持其“值”。
  • 谢谢!这看起来很有希望。我如何将此转换应用于整个列中的每个时间戳?
  • 也许通过写一个循环?

标签: python timestamp


【解决方案1】:

类似这样的事情...您将不得不更改“%d/%m/%Y”模式

import time
import datetime
  
  
string = "20/01/2020"
print(time.mktime(datetime.datetime.strptime(string,
                                             "%d/%m/%Y").timetuple()))

【讨论】:

    【解决方案2】:
    2021-04-13 11:03:13+02:00
    

    这看起来像 ISO 格式,您可以使用datetime.datetime.fromisoformat 将其转换为日期时间对象,即:

    import datetime
    stamp = "2021-04-13 11:03:13+02:00"
    dt = datetime.datetime.fromisoformat(stamp)
    print(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second)
    

    输出

    2021 4 13 11 3 13
    

    请注意,超出日期和时间的戳记包含时间偏移(时区)数据 (+02:00)。如果你想把这样的戳变成float,你必须决定如何处理时间偏移。

    【讨论】:

      猜你喜欢
      • 2019-02-17
      • 2020-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-23
      • 1970-01-01
      • 2011-12-30
      相关资源
      最近更新 更多