假设我有一个以以下五种方式之一格式化的日期列表:
Date_Type_1 = 2001 Apr 15
Date_Type_2 = 2001 Apr
Date_Type_3 = 2000 Spring
Date_Type_4 = 2000 Nov-Dec
Date_Type_5 = 2001
这样我的日期列表将如下所示。
Date_list = ["2001 Apr 15", "2004 May 15", "2011 Jan", "2011 Fall", "2000 Nov-Dec", "2012", "2000 Spring" ]
我现在想尝试格式化这些日期,以便将它们传递到 MySQL 数据库。我知道如何使用大量条件流的唯一方法。这是我将如何执行此操作的示例。我不会包括所有条件,因为它会占用太多空间。
for i in Date_list:
year = i[:4]
#This will be my conditional logic to define a month.
#This is only an example. Will not include all 12 months, 4 seasons, and various bi-months
if "Apr" in i and "Mar-Apr" not in i:
month = 4
if "Mar-Apr" in i:
month = 3
if "May" in i and "May-Jun" not in i:
month = 5
if "Apr-May" in i:
month = 4
if "Spring" in i:
month = 3
#This will be conditional logic to define the day.
#I would do this for each of the 31 days of the month.
if "15" in i and "2015" not in i:
day = 15
date_return = datetime.datetime(year,month,day)
date_format = date_return.date().isoformat
这个问题是我做了一些假设。我可以将季节定义为“春季/夏季..”并将双月刊(例如三月/四月)返回为特定月份。问题是,至少在定义天数的情况下,它不会捕获天数:
test_list = [2011 May, 2015 Apr 15]
for i in test_list:
if "15" in i and "2015" not in i:
day = 15
这不会赶上这一天。我想知道是否有更有效的方法来做到这一点?这种当前方法需要 50 多个条件语句来定义日/月。