我正在尝试将Excel中的日期格式转换为格式化,以便可以将其读入MySQL数据库。我使用python处理日期列,将其导出回csv文件,然后将其转储到MySQL表中。
以下是日期列的外观:
Date
6/10/13
6/17/13
6/24/13
我希望它的格式为:2013-06-10或(“%Y-%m-%d”)
这是我的代码:
import datetime
import csv
def read(filename):
new_date=[]
cr = csv.reader(open(filename,"rU").readlines()[1:], dialect='excel')
for row in cr:
# print row[0]
cols=datetime.datetime.strptime(row[0] , "%m/%d/%y" )
newcols=cols.strftime("%Y-%m-%d")
# print newcols
new_date.append(newcols)
print new_date[0]
with open('new_file.csv', 'wb') as f:
writer = csv.writer(f)
for date in new_date:
writer.writerow([date])
代码运行,但是当我打开new_file.csv时,日期列会自动恢复为excel中的旧格式。
我该如何改变?
谢谢,
答案 0 :(得分:0)
您是否尝试在简单的文本编辑器(例如记事本)中打开.csv,以查看日期是否正确打印到该文件?我的猜测是,能够识别日期的Excel只是在打开文件时将其重新格式化为默认日期格式,如果您在简单的文本编辑器中打开.csv文件进行检查,您会看到您的代码已正确重新格式化csv中的日期。
(默认情况下,Excel会格式化您在“控制面板”中指定的日期,并且可以在“控制面板”中更改默认日期格式以更改Excel的默认格式。)
您可以更改Excel格式化日期as described here in the documentation的方式。
- 选择要格式化的单元格。
- 按CTRL + 1。
- 在“单元格格式”框中,单击“数字”选项卡。
- 在“类别”列表中,单击“日期”。
醇>
如果您看到的格式不存在,您可以从此菜单创建自定义日期格式。详情here。