Answers:
import datetime
mydate = datetime.datetime.now()
mydate.strftime("%B")
返回:12月
有关Python文档网站的更多信息
[编辑:来自@GiriB的出色评论]您还可以使用%b
它返回月份名称的缩写。
mydate.strftime("%b")
对于上面的示例,它将返回Dec
。
mydate.strftime("%b")
返回月份名称的简称。(对于上面的示例,它将返回Dec
)
import datetime
monthinteger = 4
month = datetime.date(1900, monthinteger, 1).strftime('%B')
print month
四月
如果您只需要知道给定数字(1-12)的月份名称,这就没有太大帮助,因为当前日期无关紧要。
calendar.month_name[i]
要么
calendar.month_abbr[i]
在这里更有用。
这是一个例子:
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
...
month_name
和month_abbr
range(1, 13)
在您的示例中使用,这样您就可以在输出中获得全部12个月的时间。
这就是我要做的:
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
(这是我写这篇文章的真实日期)
一些好的 答案已经利用日历了,但是尚未提到设置语言环境的效果。
例如,法语:
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()[…]
calendar
。我也许可以更新文本。
对于arbitaray月度范围
month_integer=range(0,100)
map(lambda x: calendar.month_name[x%12+start],month_integer)
将产生正确的列表。start
从一月在月份整数列表中开始的位置调整-parameter。
8.1。datetime-基本日期和时间类型-Python 2.7.17文档 https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior
所有strftime参数的列表。月份的名称以及诸如格式化之类的好东西,将零填满。阅读整页,了解诸如“天真的”参数规则之类的内容。这是简短的列表:%a周日,周一,…,星期六
%A周日,周一,…,周六
%w工作日为数字,其中0是星期日
%d每月的第一天02,...,31
%b 1月,2月,…,12月
%B一月,二月,…,十二月
%m月号,以零填充的01、02,…,12
%y 2位数字年份零填充00、01,…,99
%Y 4位数字1970、1988、2001、2013年
%H小时(24小时制),零填充00,01,…,23
%I小时(12小时制)零填充01,02,…,12
%p AM或PM。
%M分钟零填充00、01,…,59
%S第二个零填充00、01,...,59
%f微秒零填充000000,000001,…,999999
%z UTC偏移量,格式为+ HHMM或-HHMM + 0000,-0400,+ 1030
%Z时区名称UTC,EST,CST
%j一年中的当日零填充001、002,...,366
%U年份的周号零填充,第一个星期日之前的天是第0周
%W一年中的第几周(星期一作为第一天)
%c语言环境的日期和时间表示。1988年8月16日星期二21:30:00
%x语言环境的日期表示形式。1988年8月16日(zh_CN)
%X语言环境的时间表示形式。21:30:00
%%文字'%'字符。
我创建了自己的函数,将数字转换为相应的月份。
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
模块中。创建自己的函数以复制相同的结果可能会有什么好处?而且,字典比一系列elif语句要快得多。