Bagaimana saya bisa mendapatkan nama bulan dari nomor bulan?
Misalnya, jika sudah 3
, saya ingin kembalimarch
date.tm_month()
Bagaimana cara mendapatkan string march
?
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.
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.Untuk contoh di atas, ia akan kembali
Dec
.sumber
mydate.strftime("%b")
mengembalikan notasi singkat untuk nama bulan. (Untuk contoh di atas, ia akan kembaliDec
)sumber
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:
Output sampel:
sumber
month_name
danmonth_abbr
range(1, 13)
dalam contoh Anda sehingga Anda mendapatkan semua 12 bulan di output.sumber
Saya akan menawarkan ini jika (seperti saya) Anda memiliki kolom angka bulan dalam kerangka data:
sumber
Inilah yang akan saya lakukan:
Ini Keluaran:
(Ini Adalah Tanggal Sebenarnya Ketika Saya Menulis Ini)
sumber
Beberapa jawaban yang baik sudah menggunakan kalender tetapi efek pengaturan lokal belum disebutkan.
Misalnya, dalam bahasa Prancis:
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:sumber
calendar
. Saya mungkin dapat memperbarui teks.Untuk rentang angka bulan arbitaray
akan menghasilkan daftar yang benar. Sesuaikan
start
parameter dari mulai Januari di daftar bilangan bulat bulan.sumber
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.
sumber
Saya membuat fungsi saya sendiri mengonversi angka ke bulan yang sesuai.
Maka saya bisa memanggil fungsi. Sebagai contoh:
Keluaran:
sumber
calendar
modul bawaan. Apa manfaatnya menciptakan fungsi Anda sendiri untuk mereplikasi hasil yang sama? Juga, kamus akan jauh lebih cepat daripada serangkaian pernyataan elif.