Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么元组中的所有日期都转换为datetime.today?_Python_Date_Datetime_Strftime - Fatal编程技术网

Python 为什么元组中的所有日期都转换为datetime.today?

Python 为什么元组中的所有日期都转换为datetime.today?,python,date,datetime,strftime,Python,Date,Datetime,Strftime,我从csv中读取了一个日期列表,并希望将其转换为可读格式的Python列表/元组:yyyy-mm-dd 步骤1:从文件中读取数据 with open('pnl_data.csv', 'rb') as f: reader = csv.reader(f) my_lista = [] for row in reader: my_lista.append(row[0]) 步骤2:我将所有元素转换为datetime.datetime格式 my_lista = [x

我从csv中读取了一个日期列表,并希望将其转换为可读格式的Python列表/元组:yyyy-mm-dd

步骤1:从文件中读取数据

with open('pnl_data.csv', 'rb') as f:
    reader = csv.reader(f)
    my_lista = []
    for row in reader:
        my_lista.append(row[0])
步骤2:我将所有元素转换为
datetime.datetime
格式

my_lista = [xlrd.xldate_as_tuple(x, 0) for x in my_lista]
第三步:最后我想把它格式化为yyyy-mm-dd

my_lista = [strftime('%Y-%m-%d') for y in my_lista]
由于某些原因,在执行步骤3后,所有日期都更改为今天的日期

打印输出:

执行步骤2后:

[(2014, 1, 3, 0, 0, 0), (2014, 1, 4, 0, 0, 0), (2014, 1, 5, 0, 0, 0)]
执行步骤3后:

['2014-08-28', '2014-08-28'. '2014-08-28']

为什么所有日期都更改为当前日期?

您只是调用了
strftime
,没有提到
y
,因此它默认为当前时间-在my\u lista中为y尝试
my\u lista=[y.strftime(“%y-%m-%d”)
属性错误:“tuple”对象没有属性“strftime”Oh,然后
datetime(*y).strftime(…)
。当时我以为
y
datetime
对象,不知什么原因;抱歉。字符串格式可以-
['{}-{:02}-{:02}。在我的列表中,x的格式(*x)
你好,jon,你介意写下你的评论作为正式答案吗?