Python میں کسی تاریخ سے ہفتے یا مہینے کا دن بطور تار حاصل کریں (جیسے جرمن یا انگریزی)

کاروبار

Python کی معیاری لائبریری ڈیٹ ٹائم کا استعمال کرتے ہوئے، آپ ڈیٹ سٹرنگ سے ڈیٹ ٹائم آبجیکٹ بنا سکتے ہیں اور اس سے سٹرنگ کے طور پر ہفتے یا مہینے کے دن کا نام حاصل کر سکتے ہیں۔ تاہم، ان تاروں کی زبان ماحول کے مقام (ملک یا علاقے کی ترتیب) پر منحصر ہے۔

کسی بھی زبان میں ایک تار کے طور پر تاریخ سے ہفتے یا مہینے کے دن کا نام حاصل کرنے کے دو طریقے ہیں۔

  • لوکیل ماڈیول کے ساتھ لوکیل کو تبدیل کریں۔
  • ایک نئے فنکشن کی وضاحت کریں۔

ڈیٹ ٹائم ماڈیول کے بنیادی استعمال اور تاریخ اور وقت (تاریخ، وقت) اور تاروں کے درمیان تبدیل کرنے کے طریقوں strptime() اور strftime() کے بارے میں مزید معلومات کے لیے، براہ کرم درج ذیل مضامین کا حوالہ دیں۔

لوکل ماڈیول کے ساتھ لوکیل تبدیل کریں۔

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() کے ساتھ سٹرنگ کو ڈیٹ ٹائم آبجیکٹ میں تبدیل کرنا
  • درج ذیل فارمیٹنگ کوڈ کے ساتھ اس ڈیٹ ٹائم آبجیکٹ پر 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'>

اگر ہم ہر زبان کے اسٹرنگ کے لیے ہفتے کے دنوں کے ناموں کی فہرست متعین کرتے ہیں اور ہفتے کے دن() طریقہ سے حاصل کردہ عددی اقدار کا استعمال کرتے ہوئے انہیں بازیافت کرتے ہیں، تو ہم اپنا مقصد حاصل کر سکتے ہیں۔

Copied title and URL