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)

ජපන් භාෂාවෙන් දින සහ මාස නම් ලබා ගැනීමට locale.setlocale() හි LC_TIME සිට ජපන් (UTF-8) ja_JP.UTF-8. 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'>

අපි එක් එක් භාෂා තන්තුව සඳහා සතියේ දිනවල නම් ලැයිස්තුවක් නිර්වචනය කර සතියේ දින() ක්‍රමය මගින් ලබාගත් පූර්ණ සංඛ්‍යා අගයන් භාවිතයෙන් ඒවා ලබා ගන්නේ නම්, අපට අපගේ ඉලක්කය සපුරා ගත හැකිය.