પાયથોનમાં તારીખથી અઠવાડિયા અથવા મહિનાનો દિવસ શબ્દમાળા તરીકે મેળવો (દા.ત. જર્મન અથવા અંગ્રેજી)

બિઝનેસ

પાયથોનની સ્ટાન્ડર્ડ લાઇબ્રેરી ડેટટાઇમનો ઉપયોગ કરીને, તમે તારીખની સ્ટ્રિંગમાંથી ડેટટાઇમ ઑબ્જેક્ટ બનાવી શકો છો અને સ્ટ્રિંગ તરીકે તેમાંથી અઠવાડિયા અથવા મહિનાના દિવસનું નામ મેળવી શકો છો. જો કે, તે શબ્દમાળાઓની ભાષા પર્યાવરણના લોકેલ (દેશ અથવા પ્રદેશ સેટિંગ) પર આધારિત છે.

કોઈપણ ભાષામાં સ્ટ્રિંગ તરીકે તારીખથી અઠવાડિયાના અથવા મહિનાના દિવસનું નામ મેળવવાની અહીં બે રીત છે.

  • લોકેલ મોડ્યુલ વડે લોકેલ બદલો
  • નવું કાર્ય વ્યાખ્યાયિત કરો

તારીખ અને સમય (તારીખ, સમય) અને શબ્દમાળાઓ વચ્ચે રૂપાંતર કરવા માટે તારીખ સમય મોડ્યુલના મૂળભૂત ઉપયોગ અને પદ્ધતિઓ 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() વડે ચકાસાયેલ છે અને તે None પર સેટ છે. આ પરિણામ પર્યાવરણ પર આધાર રાખે છે.

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() માં ઇચ્છિત ભાષા સેટિંગ (દા.ત. ja_JP.UTF-8) ના મૂલ્ય માટે LC_TIME
  • strptime() સાથે સ્ટ્રિંગને ડેટટાઇમ ઑબ્જેક્ટમાં રૂપાંતરિત કરવું
  • નીચેના ફોર્મેટિંગ કોડ સાથે તે datetime ઑબ્જેક્ટ પર 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'>

જો આપણે દરેક ભાષાના શબ્દમાળા માટે અઠવાડિયાના દિવસોના નામોની સૂચિ વ્યાખ્યાયિત કરીએ અને અઠવાડિયાના દિવસ() પદ્ધતિ દ્વારા મેળવેલા પૂર્ણાંક મૂલ્યોનો ઉપયોગ કરીને તેમને પુનઃપ્રાપ્ત કરીએ, તો અમે અમારું લક્ષ્ય પ્રાપ્ત કરી શકીએ છીએ.