如何从月份编号中获得月份名称?
例如,如果我有3,我想返回march
date.tm_month()
如何获得弦乐进行曲?
如何从月份编号中获得月份名称?
例如,如果我有3,我想返回march
date.tm_month()
如何获得弦乐进行曲?
当前回答
这里来自一个相关的SO问题,关于生成月份名称列表。
关于这个问题的许多选项,就像这个,建议使用日历模块,尽管datetime列表推导式也是可能的:
month_names = [dt.datetime.strptime(str(n), '%m').strftime('%B') for n in range(1, 13)]
如果您是从为大量整数查找月份名称的角度来处理这个问题的,那么为预先生成的列表建立索引可能会提高效率。
其他回答
我创建了自己的函数,将数字转换为对应的月份。
def month_name (number):
if number == 1:
return "January"
elif number == 2:
return "February"
elif number == 3:
return "March"
elif number == 4:
return "April"
elif number == 5:
return "May"
elif number == 6:
return "June"
elif number == 7:
return "July"
elif number == 8:
return "August"
elif number == 9:
return "September"
elif number == 10:
return "October"
elif number == 11:
return "November"
elif number == 12:
return "December"
然后我可以调用函数。例如:
print (month_name (12))
输出:
>>> December
一些好的答案已经使用了日历,但是设置语言环境的效果还没有被提及。
Calendar根据当前地区设置月份名称,例如在法语中:
import locale
import calendar
locale.setlocale(locale.LC_ALL, 'fr_FR')
assert calendar.month_name[1] == 'janvier'
assert calendar.month_abbr[1] == 'jan'
如果您计划在代码中使用setlocale,请确保阅读文档中的提示和警告以及扩展编写器部分。这里显示的示例不能代表它应该如何使用。特别是这两个部分:
在某些库例程中调用setlocale()通常不是一个好主意,因为它会影响整个程序[…] 扩展模块永远不应该调用setlocale()[…]
而不是导入或下载一个新的库,你可以使用我的手动功能:
将代码复制到一个新的.py文件并运行它
快速的解释:
更改your_number并输出month_from_number,您将得到月份
your_number = 10
def num_to_month(*args, **kwargs):
num = kwargs.get("num", None)
if int(num) <= 12 and int(num) > 0:
list_of_months = {'1': 'January', '2': 'February', '3': 'March',
'4': 'April', '5': 'May', '6': 'June', '7': 'July',
'8': 'August', '9': 'September', '10': 'October',
'11': 'November', '12': 'December'}
return list_of_months[num]
else:
print('num_to_month function error: "num=' + str(num) + '"')
month_from_num = num_to_month(num=your_number)
print(month_from_num)
结果将在10月份公布
import datetime
monthinteger = 4
month = datetime.date(1900, monthinteger, 1).strftime('%B')
print month
4月
如果(像我一样)你在数据框架中有一列月份数字,我会提供这个:
df['monthName'] = df['monthNumer'].apply(lambda x: calendar.month_name[x])