పైథాన్‌లోని తేదీ నుండి వారం లేదా నెల రోజును స్ట్రింగ్‌గా పొందండి (ఉదా. జర్మన్ లేదా ఇంగ్లీష్)

వ్యాపారం

పైథాన్ యొక్క ప్రామాణిక లైబ్రరీ తేదీ సమయాన్ని ఉపయోగించి, మీరు తేదీ స్ట్రింగ్ నుండి డేట్‌టైమ్ ఆబ్జెక్ట్‌ను సృష్టించవచ్చు మరియు దాని నుండి వారం లేదా నెల రోజు పేరును స్ట్రింగ్‌గా పొందవచ్చు. అయితే, ఆ స్ట్రింగ్‌ల భాష పర్యావరణం యొక్క లొకేల్ (దేశం లేదా ప్రాంతం సెట్టింగ్)పై ఆధారపడి ఉంటుంది.

ఏదైనా భాషలో స్ట్రింగ్‌గా తేదీ నుండి వారం లేదా నెల రోజు పేరును పొందడానికి ఇక్కడ రెండు మార్గాలు ఉన్నాయి.

  • లొకేల్ మాడ్యూల్‌తో లొకేల్‌ను మార్చండి
  • కొత్త ఫంక్షన్‌ను నిర్వచించండి

తేదీ మరియు సమయం (తేదీ, సమయం) మరియు స్ట్రింగ్‌ల మధ్య మార్చడానికి డేట్‌టైమ్ మాడ్యూల్ మరియు పద్ధతుల strptime() మరియు strftime() యొక్క ప్రాథమిక వినియోగం గురించి మరింత సమాచారం కోసం, దయచేసి క్రింది కథనాలను చూడండి.

లొకేల్ మాడ్యూల్‌తో లొకేల్‌ని మార్చండి

లొకేల్ సెట్టింగ్‌లను నియంత్రించడానికి పైథాన్ స్టాండర్డ్ లైబ్రరీ లొకేల్ మాడ్యూల్‌ను అందిస్తుంది.

ఇది పర్యావరణంపై ఆధారపడి ఉంటుంది, కానీ ఉదాహరణ వాతావరణంలో, 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()లో కావలసిన భాష సెట్టింగ్ విలువకు LC_TIME (ఉదా. ja_JP.UTF-8)
  • స్ట్రింగ్‌ను strptime()తో డేట్‌టైమ్ ఆబ్జెక్ట్‌గా మార్చడం
  • కింది ఫార్మాటింగ్ కోడ్‌తో ఆ తేదీ సమయ వస్తువుపై 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'>

మేము ప్రతి భాషా స్ట్రింగ్‌కు వారంలోని రోజుల పేర్ల జాబితాను నిర్వచించి, వారంరోజు() పద్ధతి ద్వారా పొందిన పూర్ణాంక విలువలను ఉపయోగించి వాటిని తిరిగి పొందినట్లయితే, మన లక్ష్యాన్ని సాధించవచ్చు.