Nggunakake datetime perpustakaan standar Python, sampeyan bisa nggawe obyek datetime saka senar tanggal lan njaluk jeneng dina minggu utawa sasi saka iku minangka senar. Nanging, basa senar kasebut gumantung saka lokal (negara utawa wilayah) lingkungan.
Ing ngisor iki ana rong cara kanggo njupuk jeneng dina minggu utawa sasi saka tanggal minangka string ing basa apa wae.
- Ngganti lokal karo modul lokal
- Netepake fungsi anyar
Kanggo informasi luwih lengkap babagan panggunaan dhasar modul datetime lan cara strptime () lan strftime () kanggo ngowahi antarane tanggal lan wektu (tanggal, wektu) lan strings, waca artikel ing ngisor iki.
- Artikel sing gegandhengan:Ngonversi tanggal lan wektu menyang lan saka strings karo datetime Python(
strftime
,strptime
)
Ngganti lokal karo modul lokal
Pustaka standar Python nyedhiyakake modul lokal kanggo ngontrol setelan lokal.
Iku gumantung ing lingkungan, nanging ing lingkungan conto, nggunakake kode format ing ngisor iki ing strftime () cara, jeneng dina minggu lan sasi bisa dipikolehi ing notasi Inggris.%A
,%a
,%B
,%b
Conto ing ngisor iki nggunakake obyek datetime kanggo makili tanggal lan wektu (tanggal lan wektu), nanging padha bener kanggo obyek tanggal sing mung duwe informasi tanggal.
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, setelan kategori lokal kanggo format wektu, dicenthang karo locale.getlocale (), lan disetel kanggo Ora ana. Asil iki gumantung ing lingkungan.
print(locale.getlocale(locale.LC_TIME))
# (None, None)
LC_TIME kanggo Japanese (UTF-8) ja_JP.UTF-8 ing locale.setlocale () kanggo njaluk jeneng dina lan sasi ing Japanese. locale.LC_ALL bisa digunakake kanggo nyetel kabeh kategori lokal, nanging Wigati sing iki bakal mengaruhi, contone, LC_MONETARY, contone,.
Elinga yen owah-owahan iki mung efektif ing kode iki. Ora ateges variabel lingkungan sistem bakal ditulis maneh.
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
Sampeyan uga bisa ngganti setelan lokal kanggo nggunakake notasi basa liyane, kayata Inggris utawa Jerman.
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
Yen sampeyan pengin entuk dina minggu kanggo tanggal tartamtu saka string tanggal ing basa apa wae, sampeyan bisa nindakake kanthi tindakake langkah ing ngisor iki.
- LC_TIME menyang Nilai saka setelan basa sing dikarepake (contone ja_JP.UTF-8) ing locale.setlocale ()
- Ngonversi string menyang obyek datetime nganggo strptime()
- Telpon strftime () ing obyek datetime karo kode format ing ngisor iki:
%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)
# 月曜日
Netepake fungsi anyar
Iki bisa ditindakake kanthi nemtokake fungsi anyar.
Ing dina minggu () cara obyek datetime menehi nilai integer 0 kanggo Senin lan 6 kanggo Minggu.
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'>
Ana cara sing padha, isoweekday (), sing ngasilake nilai integer 1 kanggo Senin lan 7 kanggo Minggu. Elinga yen ana prabédan subtle.
print(dt.isoweekday())
# 1
print(type(dt.isoweekday()))
# <class 'int'>
Yen kita nemtokake dhaptar jeneng dina minggu kanggo saben senar basa lan njupuk wong-wong mau nggunakake nilai integer dijupuk dening cara weekday (), kita bisa entuk goal kita.