如何从月份编号中获得月份名称?
例如,如果我有3,我想返回march
date.tm_month()
如何获得弦乐进行曲?
如何从月份编号中获得月份名称?
例如,如果我有3,我想返回march
date.tm_month()
如何获得弦乐进行曲?
当前回答
这就是我要做的:
from datetime import *
months = ["Unknown",
"January",
"Febuary",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"]
now = (datetime.now())
year = (now.year)
month = (months[now.month])
print(month)
输出:
>>> September
(这是我写这篇文章的真实日期)
其他回答
这里来自一个相关的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
datetime -基本日期和时间类型- Python文档
所有strftime格式代码的列表。月份的名称,以及格式化左零填充之类的好东西。阅读整页的内容,比如“天真”参数的规则。以下是清单的简要内容:
%a Sun, Mon, …, Sat
%A Sunday, Monday, …, Saturday
%w Weekday as number, where 0 is Sunday
%d Day of the month 01, 02, …, 31
%b Jan, Feb, …, Dec
%B January, February, …, December
%m Month number as a zero-padded 01, 02, …, 12
%y 2 digit year zero-padded 00, 01, …, 99
%Y 4 digit Year 1970, 1988, 2001, 2013
%H Hour (24-hour clock) zero-padded 00, 01, …, 23
%I Hour (12-hour clock) zero-padded 01, 02, …, 12
%p AM or PM.
%M Minute zero-padded 00, 01, …, 59
%S Second zero-padded 00, 01, …, 59
%f Microsecond zero-padded 000000, 000001, …, 999999
%z UTC offset in the form +HHMM or -HHMM +0000, -0400, +1030
%Z Time zone name UTC, EST, CST
%j Day of the year zero-padded 001, 002, …, 366
%U Week number of the year zero padded, Days before the first Sunday are week 0
%W Week number of the year (Monday as first day)
%c Locale’s date and time representation. Tue Aug 16 21:30:00 1988
%x Locale’s date representation. 08/16/1988 (en_US)
%X Locale’s time representation. 21:30:00
%% literal '%' character.
import datetime
mydate = datetime.datetime.now()
mydate.strftime("%B")
返回:12月
更多信息请访问Python文档网站
[编辑:来自@GiriB的精彩评论]你也可以使用%b,它返回月份名称的简短符号。
mydate.strftime("%b")
对于上面的例子,它将返回12月12日。
日历火
从那里你可以看到那个日历。month_name[3]将返回March,数组索引为0是空字符串,因此也不需要担心零索引。