如何从月份编号中获得月份名称?
例如,如果我有3,我想返回march
date.tm_month()
如何获得弦乐进行曲?
如何从月份编号中获得月份名称?
例如,如果我有3,我想返回march
date.tm_month()
如何获得弦乐进行曲?
当前回答
对于任意范围的月份数字
month_integer=range(0,100)
map(lambda x: calendar.month_name[x%12+start],month_integer)
将产生正确的列表。从月份-整数列表中一月份开始的位置调整start-parameter。
其他回答
import datetime
monthinteger = 4
month = datetime.date(1900, monthinteger, 1).strftime('%B')
print month
4月
如果你只有月份号而没有datetime实例,你可以构建一个小函数来映射number和label,如下所示:
def monthname(m):
d={1:'En',2:'Fe',3:'Mr',4:'Ab',5:'My',6:'Jn',7:'Jl',8:'Ag',9:'Se',10:'Oc',11:'No',12:'Di'}
return d[m]
import datetime
mydate = datetime.datetime.now()
mydate.strftime("%B") # 'December'
mydate.strftime("%b") # 'dec'
如果你只需要知道给定数字(1 - 12)的月份名称,这就不太有用了,因为当前日期并不重要。
calendar.month_name[我]
or
calendar.month_abbr[我]
在这里更有用。
这里有一个例子:
import calendar
for month_idx in range(1, 13):
print (calendar.month_name[month_idx])
print (calendar.month_abbr[month_idx])
print ("")
样例输出:
January
Jan
February
Feb
March
Mar
...
一些好的答案已经使用了日历,但是设置语言环境的效果还没有被提及。
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()[…]