【问题标题】:Addition of two dates on python 3在 python 3 上添加两个日期
【发布时间】:2015-09-02 11:41:25
【问题描述】:

我尝试将 csv 文件中的日期和小时数添加到一个日期时间变量中。我阅读了有关添加一些 timedelta 和官方文档 https://docs.python.org/3/library/datetime.html#timedelta-objects 的问题,但不了解它是如何工作的。

我的 csv 行看起来像 - ['2005.02.28', '17:38', '1.32690', '1.32720', '1.32680', '1.32720', '5']。我转换 row[0] = 2005.02.28 至今并转换 row[1] = 17:38。现在我需要创建新的日期时间变量,看起来像 2005.02.28 17:38。我该怎么办?

import csv
import datetime as dt
with open('EURUSDM1.csv') as csvfile:
  datereader=csv.reader(csvfile)
      for row in datereader:
          date=dt.datetime.strptime(row[0], "%Y.%m.%d")
          time=dt.datetime.strptime(row[1], "%H:%M")

【问题讨论】:

    标签: python csv datetime python-3.x


    【解决方案1】:
    import csv
    import datetime as dt
    with open('EURUSDM1.csv') as csvfile:
        datereader = csv.reader(csvfile)
        for row in datereader:
            dstr = row[0] + ' ' + row[1]
            date = dt.datetime.strptime(dstr, "%Y.%m.%d %H:%M")
    

    【讨论】:

    • 哇!谢谢,它工作完美。但是在未来,如果我从不同的文件中获得了两个对象 - 我应该如何添加日期和时间变量?
    • @pankaj-parashar 刚刚发布的另一个答案回答了这个问题。
    • 感谢您的决定,这对我帮助很大,但我将答案 pankaj-parashar 标记为问题的解决方案,因为它是一个更通用的解决方案,我认为会在许多方面对其他人有所帮助案例。
    • 我完全同意。那是一个更好、更优雅的解决方案。
    【解决方案2】:

    一旦你在两个变量new_datenew_time 中都有这两个值,你可以简单地将它们组合起来得到日期时间,像这样,

    >>> new_date = dt.datetime.strptime(row[0], "%Y.%m.%d")
    >>> new_time = dt.datetime.strptime(row[1], "%H:%M").time()
    >>> 
    >>> dt.datetime.combine(new_date, new_time)
    datetime.datetime(2005, 2, 28, 17, 38)
    

    注意:-避免使用datetime 作为变量名,因为它们也是datetime 库的一部分。使用与您的应用程序上下文相关的变量名称。

    【讨论】:

      猜你喜欢
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      • 2011-07-08
      • 1970-01-01
      • 2019-06-15
      • 1970-01-01
      • 2011-10-15
      • 1970-01-01
      相关资源
      最近更新 更多