使用Python将日期时间转换为MySQL格式
我正在尝试把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里显示。
我该怎么改变这个呢?
谢谢,
1 个回答
0
你有没有试过用简单的文本编辑器(比如记事本)打开 .csv 文件,看看里面的日期是否正确显示?我猜测是因为 Excel 能识别日期,所以当你打开文件时,它会把日期格式改成默认的样式。如果你用文本编辑器打开 .csv 文件检查一下,你会发现你的代码其实已经把日期格式化得很好了。
默认情况下,Excel 的日期格式是根据你在控制面板里设置的格式来的,你可以在控制面板里更改默认的日期格式,这样 Excel 的格式也会跟着变。
你可以按照这里的说明来改变 Excel 的日期格式。
- 选择你想要格式化的单元格。
- 按下 CTRL+1。
- 在“格式单元格”对话框中,点击“数字”标签。
- 在类别列表中,选择“日期”。
如果你看到的格式不符合你的需求,你可以在这个菜单里创建一个自定义的日期格式。详细信息可以查看这里。