使用python将datetime转换为mysql格式

时间:2014-04-25 01:06:32

标签: python mysql date datetime csv

我正在尝试将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 :(得分:0)

您是否尝试在简单的文本编辑器(例如记事本)中打开.csv,以查看日期是否正确打印到该文件?我的猜测是,能够识别日期的Excel只是在打开文件时将其重新格式化为默认日期格式,如果您在简单的文本编辑器中打开.csv文件进行检查,您会看到您的代码已正确重新格式化csv中的日期。

(默认情况下,Excel会格式化您在“控制面板”中指定的日期,并且可以在“控制面板”中更改默认日期格式以更改Excel的默认格式。)

您可以更改Excel格式化日期as described here in the documentation的方式。

  
      
  1. 选择要格式化的单元格。
  2.   
  3. 按CTRL + 1。
  4.   
  5. 在“单元格格式”框中,单击“数字”选项卡。
  6.   
  7. 在“类别”列表中,单击“日期”。
  8.   

如果您看到的格式不存在,您可以从此菜单创建自定义日期格式。详情here