जवाबों:
calendar.month_name[3]
उससे आप देख सकते हैं कि वापस आ जाएगा March
, और सरणी सूचकांक 0
खाली स्ट्रिंग है, इसलिए शून्य-इंडेक्सिंग के बारे में चिंता करने की कोई आवश्यकता नहीं है।
import datetime
mydate = datetime.datetime.now()
mydate.strftime("%B")
रिटर्न: दिसंबर
पायथन डॉक वेबसाइट पर कुछ और जानकारी
[EDIT: @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 महीने मिलें।
मैं इस मामले में (मेरी तरह) आपको डेटाफ़्रेम में महीने की संख्या का एक कॉलम पेश करूँगा:
df['monthName'] = df['monthNumer'].apply(lambda x: calendar.month_name[x])
क्या यही मुझे करना होगा:
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
अपने कोड का उपयोग करने की योजना बनाते हैं, तो दस्तावेज़ से टिप्स और कैविटीज़ और लेखक अनुभागों को पढ़ना सुनिश्चित करें । यहां दिखाया गया उदाहरण इस बात का प्रतिनिधि नहीं है कि इसका उपयोग कैसे किया जाना चाहिए। विशेष रूप से, इन दो वर्गों से:
यह आमतौर पर कुछ लाइब्रेरी रूटीन में सेटलोकाले () को कॉल करने के लिए एक बुरा विचार है, क्योंकि साइड इफेक्ट के रूप में यह पूरे कार्यक्रम को प्रभावित करता है […]
एक्सटेंशन मॉड्यूल को सेटलोकाले () […] नहीं कहना चाहिए
calendar
। मैं शायद पाठ को अपडेट कर सकता हूं।
माह संख्या की मनमानी श्रेणी के लिए
month_integer=range(0,100)
map(lambda x: calendar.month_name[x%12+start],month_integer)
सही सूची देगा। समायोजित करें- start
जहाँ से जनवरी महीने की पूर्णांक सूची में शुरू होता है।
8.1। डेटाटाइम - मूल दिनांक और समय प्रकार - पायथन 2.7.17 प्रलेखन https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior
सभी तर्कों की एक सूची। महीनों के नाम और अच्छी सामग्री जैसे फॉर्मेटिंग शून्य शून्य भरना। "भोले" तर्कों के लिए नियमों जैसे सामान के लिए पूरा पृष्ठ पढ़ें। यहाँ संक्षेप में सूची दी गई है:% a Sun, Mon,…, Sat
% एक रविवार, सोमवार,…, शनिवार
% w वीकडे नंबर के रूप में, जहां 0 रविवार है
महीने का% d दिन 01, 02,…, 31
% b जनवरी, फ़रवरी,…, दिसंबर
% B जनवरी, फरवरी, ..., दिसंबर
शून्य-गद्देदार 01, 02,…, 12 के रूप में% m माह की संख्या
% y 2 अंक वर्ष शून्य-गद्देदार 00, 01,…, 99
% Y 4 अंक वर्ष 1970, 1988, 2001, 2013
% एच घंटा (24-घंटे की घड़ी) शून्य-गद्देदार 00, 01,…, 23
% I घंटा (12 घंटे की घड़ी) शून्य-गद्देदार 01, 02,…, 12
% p एएम या पीएम।
% 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 लोकेल की तारीख और समय प्रतिनिधित्व। Tue Aug 16 21:30:00 1988
% x लोकेल की तारीख प्रतिनिधित्व। 08/16/1988 (en_US)
% 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
मॉड्यूल में मौजूद है । समान परिणाम दोहराने के लिए अपना स्वयं का फ़ंक्शन बनाने के लिए क्या लाभ हो सकता है? इसके अलावा, एक शब्द भी एलिफ बयानों की एक श्रृंखला की तुलना में बहुत तेज होगा।