Python च्या मानक लायब्ररी datetime चा वापर करून, तुम्ही तारखेच्या स्ट्रिंगमधून datetime ऑब्जेक्ट तयार करू शकता आणि स्ट्रिंग म्हणून आठवड्याच्या किंवा महिन्याच्या दिवसाचे नाव मिळवू शकता. तथापि, त्या स्ट्रिंगची भाषा पर्यावरणाच्या स्थानिक (देश किंवा प्रदेश सेटिंग) वर अवलंबून असते.
कोणत्याही भाषेतील तारखेपासून आठवड्याच्या किंवा महिन्याच्या दिवसाचे नाव मिळविण्याचे दोन मार्ग येथे आहेत.
- लोकेल मॉड्यूलसह लोकेल बदला
- नवीन कार्य परिभाषित करा
तारीख आणि वेळ (तारीख, वेळ) आणि स्ट्रिंग्स दरम्यान रूपांतरित करण्यासाठी datetime मॉड्यूलच्या मूलभूत वापराबद्दल आणि पद्धती strptime() आणि strftime() बद्दल अधिक माहितीसाठी, कृपया खालील लेख पहा.
- संबंधित लेख:तारखा आणि वेळा Python च्या datetime सह स्ट्रिंग्समध्ये रूपांतरित करणे(
strftime
,strptime
)
लोकेल मॉड्यूलसह लोकेल बदला
Python मानक लायब्ररी लोकेल सेटिंग्ज नियंत्रित करण्यासाठी लोकेल मॉड्यूल प्रदान करते.
हे वातावरणावर अवलंबून असते, परंतु उदाहरणाच्या वातावरणात, strftime() पद्धतीमध्ये खालील स्वरूपन कोड वापरून, आठवड्याच्या दिवसांची आणि महिन्यांची नावे इंग्रजी नोटेशनमध्ये मिळवता येतात.%A
,%a
,%B
,%b
खालील उदाहरण तारीख आणि वेळ (तारीख आणि वेळ) दर्शवण्यासाठी डेटटाइम ऑब्जेक्ट वापरते, परंतु तेच तारीख ऑब्जेक्टसाठी सत्य आहे ज्यात फक्त तारीख माहिती आहे.
import datetime
import locale
dt = datetime.datetime(2018, 1, 1)
print(dt)
# 2018-01-01 00:00:00
print(dt.strftime('%A, %a, %B, %b'))
# Monday, Mon, January, Jan
LC_TIME, वेळ स्वरूपनासाठी स्थानिक श्रेणी सेटिंग, locale.getlocale() सह तपासली जाते आणि ती काहीही नाही वर सेट केली जाते. हा निकाल पर्यावरणावर अवलंबून असतो.
print(locale.getlocale(locale.LC_TIME))
# (None, None)
LC_TIME ते जपानी (UTF-8) ja_JP.UTF-8 मध्ये locale.setlocale() मध्ये दिवस आणि महिन्याची नावे जपानीमध्ये मिळवा. locale.LC_ALL सर्व लोकॅल श्रेणी सेट करण्यासाठी वापरला जाऊ शकतो, परंतु लक्षात ठेवा की याचा परिणाम होईल, उदाहरणार्थ LC_MONETARY, उदाहरणार्थ.
लक्षात घ्या की हे बदल फक्त या कोडमध्ये प्रभावी आहेत. याचा अर्थ असा नाही की सिस्टम पर्यावरण व्हेरिएबल्स पुन्हा लिहिले जातील.
locale.setlocale(locale.LC_TIME, 'ja_JP.UTF-8')
print(locale.getlocale(locale.LC_TIME))
# ('ja_JP', 'UTF-8')
print(dt.strftime('%A, %a, %B, %b'))
# 月曜日, 月, 1月, 1
तुम्ही इंग्रजी किंवा जर्मन सारख्या इतर भाषा नोटेशन वापरण्यासाठी लोकेल सेटिंग्ज देखील बदलू शकता.
locale.setlocale(locale.LC_TIME, 'en_US.UTF-8')
print(dt.strftime('%A, %a, %B, %b'))
# Monday, Mon, January, Jan
locale.setlocale(locale.LC_TIME, 'de_DE.UTF-8')
print(dt.strftime('%A, %a, %B, %b'))
# Montag, Mo, Januar, Jan
तुम्हाला कोणत्याही भाषेतील तारखेच्या तारेवरून दिलेल्या तारखेसाठी आठवड्याचा दिवस मिळवायचा असल्यास, तुम्ही खालील चरणांचे अनुसरण करून ते करू शकता.
- locale.setlocale() मधील इच्छित भाषा सेटिंगच्या मूल्यापर्यंत (उदा. ja_JP.UTF-8) LC_TIME
- strptime() सह स्ट्रिंगला डेटटाइम ऑब्जेक्टमध्ये रूपांतरित करणे
- खालील फॉरमॅटिंग कोडसह त्या datetime ऑब्जेक्टवर strftime() ला कॉल करा:
%A
,%a
,%B
,%b
locale.setlocale(locale.LC_TIME, 'ja_JP.UTF-8')
s = '2018-01-01'
s_dow = datetime.datetime.strptime(s, '%Y-%m-%d').strftime('%A')
print(s_dow)
# 月曜日
नवीन कार्य परिभाषित करा
हे नवीन कार्य परिभाषित करून प्राप्त केले जाऊ शकते.
डेटटाइम ऑब्जेक्टची वीकडे() पद्धत सोमवारसाठी 0 आणि रविवारसाठी 6 पूर्णांक मूल्य देते.
import datetime
dt = datetime.datetime(2018, 1, 1)
print(dt)
# 2018-01-01 00:00:00
print(dt.weekday())
# 0
print(type(dt.weekday()))
# <class 'int'>
एक समान पद्धत आहे, isoweekday(), जी सोमवारसाठी 1 आणि रविवारसाठी 7 पूर्णांक मूल्य मिळवते. लक्षात घ्या की एक सूक्ष्म फरक आहे.
print(dt.isoweekday())
# 1
print(type(dt.isoweekday()))
# <class 'int'>
जर आम्ही प्रत्येक भाषेच्या स्ट्रिंगसाठी आठवड्याच्या दिवसांच्या नावांची यादी परिभाषित केली आणि आठवड्याच्या दिवशी() पद्धतीद्वारे प्राप्त पूर्णांक मूल्ये वापरून ती पुनर्प्राप्त केली, तर आम्ही आमचे ध्येय साध्य करू शकतो.