Câu trả lời:
import datetime
mydate = datetime.datetime.now()
mydate.strftime("%B")
Trả về: tháng 12
Một số thông tin khác trên trang web tài liệu Python
[EDIT: nhận xét tuyệt vời từ @GiriB] Bạn cũng có thể sử dụng %b
để trả về ký hiệu ngắn cho tên tháng.
mydate.strftime("%b")
Đối với ví dụ trên, nó sẽ trở lại Dec
.
mydate.strftime("%b")
trả về ký hiệu ngắn cho tên tháng. (Ví dụ ở trên, nó sẽ trở lại Dec
)
import datetime
monthinteger = 4
month = datetime.date(1900, monthinteger, 1).strftime('%B')
print month
Tháng 4
Điều này không hữu ích nếu bạn chỉ cần biết tên tháng cho một số đã cho (1 - 12), vì ngày hiện tại không thành vấn đề.
calendar.month_name[i]
hoặc là
calendar.month_abbr[i]
hữu ích hơn ở đây.
Đây là một ví dụ:
import calendar
for month_idx in range(1, 13):
print (calendar.month_name[month_idx])
print (calendar.month_abbr[month_idx])
print ("")
Đầu ra mẫu:
January
Jan
February
Feb
March
Mar
...
month_name
vàmonth_abbr
range(1, 13)
bạn nên sử dụng trong ví dụ của mình để bạn có được tất cả 12 tháng trong đầu ra.
Tôi sẽ cung cấp điều này trong trường hợp (như tôi) bạn có một cột số tháng trong khung dữ liệu:
df['monthName'] = df['monthNumer'].apply(lambda x: calendar.month_name[x])
Đây là những gì tôi sẽ làm:
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)
Nó xuất ra:
>>> September
(Đây là ngày thực sự khi tôi viết bài này)
Một số tốt câu trả lời đã tận dụng lịch nhưng hiệu quả của việc thiết lập miền địa phương vẫn chưa được đề cập được nêu ra.
Ví dụ: bằng tiếng Pháp:
import locale
import calendar
locale.setlocale(locale.LC_ALL, 'fr_FR')
assert calendar.month_name[1] == 'janvier'
assert calendar.month_abbr[1] == 'jan'
Nếu bạn có kế hoạch sử dụng setlocale
mã của mình, hãy đảm bảo đọc các mẹo và cảnh báo và phần nhà văn mở rộng từ tài liệu. Ví dụ hiển thị ở đây không đại diện cho cách sử dụng nó. Đặc biệt, từ hai phần này:
Nói chung là một ý tưởng tồi khi gọi setlocale () trong một số thói quen của thư viện, vì là một tác dụng phụ, nó ảnh hưởng đến toàn bộ chương trình [Hồi]
Các mô-đun mở rộng không bao giờ nên gọi setlocale () [Hoài]
calendar
. Tôi có thể cập nhật văn bản.
Đối với phạm vi số tháng của arbitaray
month_integer=range(0,100)
map(lambda x: calendar.month_name[x%12+start],month_integer)
sẽ mang lại danh sách chính xác. Điều chỉnh start
tham số từ nơi tháng 1 bắt đầu trong danh sách số nguyên tháng.
8.1. datetime - Các loại ngày và giờ cơ bản - Tài liệu Python 2.7.17 https://docs.python.org/2/l Library / datetime.html # strftime-strptime-behavior
Một danh sách của tất cả các đối số strftime Tên của tháng và những thứ tốt đẹp như định dạng không điền. Đọc toàn bộ trang để biết nội dung như quy tắc cho các đối số "ngây thơ". Dưới đây là danh sách ngắn gọn:% a Sun, Mon, Mạnh, Sat
% A chủ nhật, thứ hai, ngày mai, thứ bảy
% w Ngày trong tuần dưới dạng số, trong đó 0 là Chủ nhật
% d Ngày trong tháng 01, 02, Nhận, 31
% b tháng một, tháng hai, tháng mười, tháng mười hai
% B tháng 1, tháng 2, tầm, tháng 12
% m Số tháng dưới dạng số 0, 02, số 12, 12
% y 2 chữ số năm không có đệm 00, 01, Mạnh, 99
% Y 4 chữ số Năm 1970, 1988, 2001, 2013
% H Giờ (đồng hồ 24 giờ) không đệm 00, 01, đánh, 23
% I Giờ (đồng hồ 12 giờ) không có đệm 01, 02, đánh, 12
% p AM hoặc PM.
% M Phút không đệm 00, 01, Nhận, 59
% S Không đệm thứ hai 00, 01, Nhận, 59
% f microsecond zero-độn 000000, 000001, Mạnh, 999999
% Z UTC bù ở dạng + HHMM hoặc -HHMM +0000, -0400, +1030
% Z Tên múi giờ UTC, EST, CST
% j Ngày trong năm không có đệm 001, 002, Mạnh, 366
% U Số tuần của năm không có đệm, Ngày trước Chủ nhật đầu tiên là tuần 0
% W Số tuần trong năm (Thứ hai là ngày đầu tiên)
% c Đại diện ngày và giờ của Locale. Thứ ba ngày 16 tháng 8 21:30:00 1988
% x Đại diện ngày của địa phương. 16/08/1988 (vi_US)
Biểu diễn thời gian của% X Locale. 21:30:00
%% ký tự '%' theo nghĩa đen.
Tôi đã tạo chức năng riêng của mình chuyển đổi số sang tháng tương ứng của họ.
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"
Sau đó tôi có thể gọi hàm. Ví dụ:
print (month_name (12))
Đầu ra:
>>> December
calendar
mô-đun tích hợp. Lợi ích gì có thể có khi tạo chức năng của riêng bạn để sao chép các kết quả tương tự? Ngoài ra, một từ điển sẽ nhanh hơn nhiều so với một loạt các câu lệnh elif.