我正在尝试将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中的旧格式。
我该怎么改?
谢谢,
您是否尝试过在简单的文本编辑器(例如记事本)中打开.csv,以查看日期是否正确打印到该文件?我的猜测是,能够识别日期的Excel只是在你打开文件时将其重新格式化为默认日期格式,如果你在一个简单的文本编辑器中打开.csv文件进行检查,你会发现你的代码已经正确地重新格式化了csv中的日期。
(默认情况下,Excel的日期格式与您在"控制面板"中指定的格式相同,您可以在"控制板"中更改默认日期格式以更改Excel的默认格式。)
您可以按照文档中的说明更改Excel设置日期格式的方式。
- 选择要设置格式的单元格
- 按CTRL+1
- 在"设置单元格格式"框中,单击"数字"选项卡
- 在"类别"列表中,单击"日期"
如果您看到的格式不存在,则可以从此菜单创建自定义日期格式。详细信息请点击此处。