我尝试过使用它,但输出不符合预期
m = []
import calendar
for i in range(1, 13):
m.append(calendar.month_name)
print(m)
Run Code Online (Sandbox Code Playgroud)
输出:[<calendar._localized_month 对象位于 0x7f901a7013d0>、<calendar._localized_month 对象位于 0x7f901a7013d0>、<calendar._localized_month 对象位于 0x7f901a7013d0>、<calendar._localized_month 对象位于 0x7f901a7013d0>、<calendar._localized_month 对象位于 0x7f901a7013d0>。 _localized_month 对象位于 0x7f901a7013d0>,<日历._localized_month 对象位于 0x7f901a7013d0>、<calendar._localized_month 对象位于 0x7f901a7013d0>、<calendar._localized_month 对象位于 0x7f901a7013d0>、<calendar._localized_month 对象位于 0x7f901a7013d0>、<calendar._localized_month 对象位于 0x7f901a7013d0>,<calendar._localized_month 对象位于 0x7f901a7013d0 >, <calendar._localized_month 对象位于 0x7f901a7013d0>]
我想要一个带有时间戳列的pandas DataFrame,并希望创建一个只有月份的列.我希望月份列包含月份的字符串表示,而不是整数.我做过这样的事情:
df['Dates'] = pd.to_datetime(df['Dates'])
df['Month'] = df.Dates.dt.month
df['Month'] = df.Month.apply(lambda x: datetime.strptime(str(x), '%m').strftime('%b'))
Run Code Online (Sandbox Code Playgroud)
然而,这是一种蛮力方法,并不是非常高效.有没有更优雅的方法将月份的整数表示转换为字符串表示?
使用以下命令,我能够获得给定日期的星期数:
from calendar import weekday
print(weekday(2015, 5, 8))
Run Code Online (Sandbox Code Playgroud)
然后该块产生数字4.如何将其转换为Friday,最好只使用日历库.我尽可能地查看了文档,但找不到任何可以打印出全天名称的内容.
干杯.
下面的代码正确获取月份编号,但我想检索月份名称而不是数字。我试过在模板中使用 Django 日期过滤器,以及在 views.py 中使用日历工具,但这似乎不起作用
视图.py
def ticket(request, month, year):
airline = Airline.objects.get(id=request.user.airline_id)
for ts in Timestamp.objects.filter(
airline=airline,
usage_on__year=year,
usage_on__month=month
):
pass
return TemplateResponse(request, 'club/al_history.html', {
'usage_month': month,
'usage_year': year,
'timestamp': timestamp,
})
Run Code Online (Sandbox Code Playgroud)
al.html
{% extends 'base.html' %}
{% block content %}
<h3>{{ usage_month }}, {{usage_year}}</h3>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)