Jawaban:
Dari itu Anda bisa melihat bahwa calendar.month_name[3]
akan kembali March
, dan indeks array 0
adalah string kosong, jadi tidak perlu khawatir tentang pengindeksan nol juga.
import datetime
mydate = datetime.datetime.now()
mydate.strftime("%B")
Pengembalian: Desember
Beberapa info lebih lanjut di situs web Python doc
[EDIT: komentar hebat dari @GiriB] Anda juga dapat menggunakan %b
yang mengembalikan notasi pendek untuk nama bulan.
mydate.strftime("%b")
Untuk contoh di atas, ia akan kembali Dec
.
mydate.strftime("%b")
mengembalikan notasi singkat untuk nama bulan. (Untuk contoh di atas, ia akan kembali Dec
)
import datetime
monthinteger = 4
month = datetime.date(1900, monthinteger, 1).strftime('%B')
print month
April
Ini tidak begitu membantu jika Anda hanya perlu mengetahui nama bulan untuk nomor yang diberikan (1 - 12), karena hari ini tidak masalah.
calendar.month_name[i]
atau
calendar.month_abbr[i]
lebih berguna di sini.
Berikut ini sebuah contoh:
import calendar
for month_idx in range(1, 13):
print (calendar.month_name[month_idx])
print (calendar.month_abbr[month_idx])
print ("")
Output sampel:
January
Jan
February
Feb
March
Mar
...
month_name
danmonth_abbr
range(1, 13)
dalam contoh Anda sehingga Anda mendapatkan semua 12 bulan di output.
Saya akan menawarkan ini jika (seperti saya) Anda memiliki kolom angka bulan dalam kerangka data:
df['monthName'] = df['monthNumer'].apply(lambda x: calendar.month_name[x])
Inilah yang akan saya lakukan:
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)
Ini Keluaran:
>>> September
(Ini Adalah Tanggal Sebenarnya Ketika Saya Menulis Ini)
Beberapa jawaban yang baik sudah menggunakan kalender tetapi efek pengaturan lokal belum disebutkan.
Misalnya, dalam bahasa Prancis:
import locale
import calendar
locale.setlocale(locale.LC_ALL, 'fr_FR')
assert calendar.month_name[1] == 'janvier'
assert calendar.month_abbr[1] == 'jan'
Jika Anda berencana untuk menggunakan setlocale
kode Anda, pastikan untuk membaca tip dan peringatan dan bagian penulis ekstensi dari dokumentasi. Contoh yang ditunjukkan di sini tidak mewakili bagaimana seharusnya digunakan. Secara khusus, dari dua bagian ini:
Biasanya merupakan ide yang buruk untuk memanggil setlocale () dalam beberapa rutin perpustakaan, karena sebagai efek samping itu mempengaruhi seluruh program [...]
Modul ekstensi tidak boleh memanggil setlocale () [...]
calendar
. Saya mungkin dapat memperbarui teks.
Untuk rentang angka bulan arbitaray
month_integer=range(0,100)
map(lambda x: calendar.month_name[x%12+start],month_integer)
akan menghasilkan daftar yang benar. Sesuaikan start
parameter dari mulai Januari di daftar bilangan bulat bulan.
8.1. datetime - Tipe tanggal dan waktu dasar - Dokumentasi Python 2.7.17 https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior
Daftar semua argumen strftime. Nama berbulan-bulan dan hal-hal bagus seperti pemformatan tidak mengisi. Baca halaman lengkap untuk hal-hal seperti aturan untuk argumen "naif". Berikut ini daftar singkatnya:% a Matahari, Sen, ..., Sabtu
% A Minggu, Senin, ..., Sabtu
% w Hari kerja sebagai angka, di mana 0 adalah hari Minggu
% d Hari dalam bulan 01, 02,…, 31
% b Jan, Feb,…, Des
% B Januari, Februari, ..., Desember
% m Angka bulan sebagai nol, 01, 02,…, 12
% y 2 digit tahun nol-empuk 00, 01,…, 99
% Y 4 digit Tahun 1970, 1988, 2001, 2013
% H Jam (24 jam) nol-empuk 00, 01,…, 23
% I Jam (12 jam) nol-empuk 01, 02,…, 12
% p AM atau PM.
% M Menit nol-empuk 00, 01,…, 59
% S Kedua nol-empuk 00, 01, ..., 59
% f Microsecond nol-empuk 000000, 000001,…, 999999
% z UTC offset dalam bentuk + HHMM atau -HHMM +0000, -0400, +1030
% Z Nama zona waktu UTC, EST, CST
% j Hari dalam setahun nol-empuk 001, 002,…, 366
% Nomor minggu U tahun tanpa nol, Hari sebelum hari Minggu pertama adalah minggu 0
% W Jumlah minggu dalam setahun (Senin sebagai hari pertama)
% c Representasi tanggal dan waktu lokal. Selasa 16 Agustus 21:30:00 1988
% x Representasi tanggal lokal. 08/16/1988 (en_US)
Representasi waktu% X Lokal. 21:30:00
%% literal '%' karakter.
Saya membuat fungsi saya sendiri mengonversi angka ke bulan yang sesuai.
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"
Maka saya bisa memanggil fungsi. Sebagai contoh:
print (month_name (12))
Keluaran:
>>> December
calendar
modul bawaan. Apa manfaatnya menciptakan fungsi Anda sendiri untuk mereplikasi hasil yang sama? Juga, kamus akan jauh lebih cepat daripada serangkaian pernyataan elif.