将月份缩写字符串转换为 python 中的日期
Transform month abbreviation strings to date in python
我有一个带有缩写月份名称的列表
shortmonth = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
并且我想将每个元素都设为 2020 年的日期格式,因此每个元素的形式为
'2020-01-01'
作为日期而不是简单的字符串。我是 python 的新手,如果有人能告诉我该怎么做。
您可以使用range()
生成月份数字; shortmonth
列表不是必需的。您可以执行以下操作:
print(['2020-{0:02d}-01'.format(i) for i in range(1, 13)])
如果要创建 datetime
个对象,可以执行以下操作:
from datetime import datetime
print([datetime.strptime('2020-{0:02d}-01'.format(i), "%Y-%m-%d") for i in range(1, 13)])
如果您想使用 datetime.datetime
或 datetime.date
对象,并且假设您希望所有月份都按顺序排列,您可以跳过月份缩写字符串并执行如下操作:
month_starts = [
datetime.date(year=2020, month=month, day=1)
for month in range(1, 13)
]
或
month_starts = [
datetime.datetime(year=2020, month=month, day=1)
for month in range(1, 13)
]
如果您确实需要使用月份缩写字符串,您可以这样做:
month_abbr = 'Apr' # coming from a file, input or from elsewhere in the program
month_number = shortmonth.index(month_abbr) + 1
the_month_start = datetime.date(year=2020, month=month_number, day=1)
我有一个带有缩写月份名称的列表
shortmonth = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
并且我想将每个元素都设为 2020 年的日期格式,因此每个元素的形式为
'2020-01-01'
作为日期而不是简单的字符串。我是 python 的新手,如果有人能告诉我该怎么做。
您可以使用range()
生成月份数字; shortmonth
列表不是必需的。您可以执行以下操作:
print(['2020-{0:02d}-01'.format(i) for i in range(1, 13)])
如果要创建 datetime
个对象,可以执行以下操作:
from datetime import datetime
print([datetime.strptime('2020-{0:02d}-01'.format(i), "%Y-%m-%d") for i in range(1, 13)])
如果您想使用 datetime.datetime
或 datetime.date
对象,并且假设您希望所有月份都按顺序排列,您可以跳过月份缩写字符串并执行如下操作:
month_starts = [
datetime.date(year=2020, month=month, day=1)
for month in range(1, 13)
]
或
month_starts = [
datetime.datetime(year=2020, month=month, day=1)
for month in range(1, 13)
]
如果您确实需要使用月份缩写字符串,您可以这样做:
month_abbr = 'Apr' # coming from a file, input or from elsewhere in the program
month_number = shortmonth.index(month_abbr) + 1
the_month_start = datetime.date(year=2020, month=month_number, day=1)