[英]convert python string date to mysql datetime
我有一个字符串字段,女巫是从互联网上刮下来的一个日期,内容如下:
"Lun Ene 27, 2014 9:52 am", "Mar Feb 11, 2014 5:38 pm",...
伦=周几(月/星期一)伦=月(enero /一月)
我需要在mysql表的datetime字段中输入它们。
'YYYY-MM-DD HH:MM:SS'
我想这是一个非常普遍的问题,想知道是否有人已经有脚本可以执行此操作,或者可以指出我可以在哪里寻找...
提前致谢!
month_of_the_year = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dec']
def convert_to_mysql_format(string):
explode = string.split()
day_of_the_month = explode[2][:-1]
if int(explode[2][:-1]) < 10:
day_of_the_month = "%02d" % (int(explode[2][:-1]),)
if explode[5] == 'am':
time_split = explode[4].split(':')
if time_split[0] == '12':
time_split[0] = '00'
elif int(time_split[0]) < 10:
time_split[0] = "%02d" % int(time_split[0])
else:
time_split = explode[4].split(':')
if int(time_split[0]) in range(1, 12):
time_split[0] = str(int(time_split[0]) + 12)
if month_of_the_year.index(explode[1]) < 12:
explode[1] = "%02d" % (month_of_the_year.index(explode[1])+1)
return explode[3]+'-'+explode[1]+'-'+day_of_the_month+' '+time_split[0]+':'+time_split[1]+':00'
print convert_to_mysql_format("Lun Ene 27, 2014 9:52 am")
print convert_to_mysql_format("Lun Ene 27, 2014 9:52 pm")
2014-01-27 09:52:00
2014-01-27 21:52:00
默认情况下,Python使用C语言环境运行:
>>> from datetime import datetime
>>> datetime.strptime("Tue Feb 11, 2014 5:38 PM", "%a %b %d, %Y %I:%M %p")
datetime.datetime(2014, 2, 11, 17, 38)
>>> import locale
>>> locale.nl_langinfo(locale.T_FMT_AMPM)
'%I:%M:%S %p'
更改语言环境部分有助于我的系统:
>>> locale.setlocale(locale.LC_TIME, 'es_ES.UTF-8')
'es_ES.UTF-8'
>>> datetime.strptime("Lun Ene 27, 2014 9:52 am"[:-2], "%a %b %d, %Y %I:%M %p")
datetime.datetime(2014, 1, 27, 9, 52)
>>> locale.nl_langinfo(locale.T_FMT_AMPM)
''
T_FMT_AMPM
未设置为我的系统上的某些原因es_ES.UTF-8
要解决此问题,如果时间字符串以'pm'
结尾,则可以手动添加12小时。
strftime()
和time
行为是相同的。
注意:在其他系统上,语言环境名称可能不同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.