在python 3上添加两个日期

时间:2015-06-17 09:54:16

标签: python csv datetime python-3.x

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

我的csv行看起来像 - [' 2005.02.28',' 17:38',' 1.32690',' 1.32720&#39 ;,' 1.32680',' 1.32720',' 5']。我将row [0] = 2005.02.28转换为日期并转换行[1] = 17:38现在我需要创建新的datetime变量,如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")

2 个答案:

答案 0 :(得分:4)

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")

答案 1 :(得分:3)

在两个变量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库的一部分。使用与您的应用程序上下文相关的变量名称。