Kwa kutumia tarehe ya kawaida ya maktaba ya Python, unaweza kuunda kitu cha tarehe kutoka kwa kamba ya tarehe na kupata jina la siku ya juma au mwezi kutoka kwake kama kamba. Hata hivyo, lugha ya mifuatano hiyo inategemea eneo (nchi au eneo) la mazingira.
Hapa kuna njia mbili za kupata jina la siku ya juma au mwezi kutoka tarehe kama mfuatano katika lugha yoyote.
- Badilisha lugha na moduli ya eneo
- Bainisha kipengele kipya cha kukokotoa
Kwa maelezo zaidi juu ya matumizi ya kimsingi ya moduli ya tarehe na mbinu strptime() na strftime() za kubadilisha kati ya tarehe na saa (tarehe, saa) na mifuatano, tafadhali rejelea makala yafuatayo.
- Nakala Zinazohusiana:Kubadilisha tarehe na nyakati kwenda na kutoka kwa kamba na tarehe ya Python(
strftime
,strptime
)
Badilisha lugha kwa kutumia moduli ya lugha
Maktaba ya kawaida ya Python hutoa moduli ya eneo kudhibiti mipangilio ya eneo.
Inategemea mazingira, lakini katika mazingira ya mfano, kwa kutumia msimbo wa umbizo ufuatao katika mbinu ya strftime(), majina ya siku za wiki na miezi yanaweza kupatikana kwa nukuu ya Kiingereza.%A
,%a
,%B
,%b
Mfano ufuatao unatumia kipengee cha tarehe kuwakilisha tarehe na saa (tarehe na saa), lakini ni hivyo hivyo kwa kitu cha tarehe ambacho kina maelezo ya tarehe pekee.
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, mpangilio wa kategoria ya eneo kwa ajili ya uumbizaji wa wakati, imechaguliwa kwa locale.getlocale(), na imewekwa kuwa Hakuna. Matokeo haya inategemea mazingira.
print(locale.getlocale(locale.LC_TIME))
# (None, None)
LC_TIME hadi Kijapani (UTF-8) ja_JP.UTF-8 katika locale.setlocale() ili kupata majina ya siku na mwezi kwa Kijapani. locale.LC_ALL inaweza kutumika kuweka kategoria zote za lugha, lakini kumbuka kuwa hii itaathiri, kwa mfano LC_MONETARY, kwa mfano.
Kumbuka kuwa mabadiliko haya yanafaa katika msimbo huu pekee. Haimaanishi kuwa vigezo vya mazingira ya mfumo vitaandikwa upya.
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
Unaweza pia kubadilisha mipangilio ya lugha ili kutumia nukuu za lugha nyingine, kama vile Kiingereza au Kijerumani.
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
Ikiwa ungependa kupata siku ya juma kwa tarehe fulani kutoka kwa mfuatano wa tarehe katika lugha yoyote, unaweza kufanya hivyo kwa kufuata hatua zilizo hapa chini.
- LC_TIME kwa thamani ya mpangilio wa lugha unaotaka (k.m. ja_JP.UTF-8) katika locale.setlocale()
- Kubadilisha kamba kuwa kitu cha tarehe na strptime()
- Piga simu strftime() kwenye kitu hicho cha tarehe na nambari ifuatayo ya umbizo:
%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)
# 月曜日
Bainisha kipengele kipya cha kukokotoa
Hii inaweza kupatikana kwa kufafanua kazi mpya.
Njia ya siku ya wiki() ya kitu cha tarehe inatoa thamani kamili ya 0 kwa Jumatatu na 6 kwa Jumapili.
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'>
Kuna mbinu sawa, isoweekday(), ambayo hurejesha thamani kamili ya 1 kwa Jumatatu na 7 kwa Jumapili. Kumbuka kuwa kuna tofauti ndogo.
print(dt.isoweekday())
# 1
print(type(dt.isoweekday()))
# <class 'int'>
Tukifafanua orodha ya majina ya siku za wiki kwa kila mfuatano wa lugha na kuzipata kwa kutumia nambari kamili zinazopatikana kwa njia ya siku ya juma(), tunaweza kufikia lengo letu.