Python tarihi türkçeye çevirme

Katılım
17 Eylül 2020
Mesajlar
3.047
Makaleler
1
Çözümler
38
Merhaba, kendi kendimi geliştirmek için birkaç şey deniyorum. Tkinter ile bir ders programı yapıyorum. En sona dosyanın son güncellenme tarihini eklemek istedim. Fakat tarihi bir türlü Türkçe yapamadım. Yardımcı olursanız sevinirim. Kaynak kodları: siriiuss/python-school-timetable

 
Python:
 values=("%s" % time.ctime(os.path.getmtime("data.py")))
Tarihi çeken time kütüphanesi Ingilizce sonuç dönderiyor.
Dictionary gibi bir yapı kullanarak Mon => Pazartesi, Tue => Salı ... gibi dönüşümler yapabilirsiniz.

Python:
dict = {'Mon' : 'Pazartesi', 'Tue' : 'Salı', 'Wed': 'Çarşamba'}
print(dict['Mon'])

Attığım örnek üzerinden ilerleyebilirsiniz.
Benzer işlemi aylar için de yapabilirsiniz.


[CODE lang="python" title="Values içerisini Ayırmak için."]sep = values.split(' ')
dayName = sep[0]
monthName = sep[1]
day = sep[2]
timeVal = sep[3]
year = [4][/CODE]
 
Son düzenleme:

datetime Modülü​

Bu bölümde, zaman, saat ve tarihlerle ilgili işlemler yapmamızı sağlayan önemli bir standart kütüphane modülünden söz edeceğiz. Bu modülün adı datetime.

datetime modülü; zaman, saat ve tarihlerle ilgili işlemler yapabilmemiz için bize çeşitli fonksiyon ve nitelikler sunan bazı sınıflardan oluşur. Bu modül içinde temel olarak üç farklı sınıf bulunur.

‘Sınıf’ kavramına çok takılmayın. İlerleyen derslerde sınıflardan ayrıntılı olarak söz edeceğiz.
datetime modülü içinde yer alan bu üç sınıf şunlardır:

  1. date sınıfı; tarihle ilgili işlemler yapabilmemizi sağlayan fonksiyon ve nitelikleri barındırır.
  2. time sınıfı; zamanla/saatle ilgili işlemler yapabilmemizi sağlayan fonksiyon ve nitelikleri barındırır.
  3. datetime sınıfı; date ve time sınıflarının birleşiminden ve ilave birkaç nitelik ve fonksiyondan oluşur.
Buna göre, datetime adlı sınıf hem date sınıfını hem de time sınıfını kapsadığı için, datetime modülü ile işlem yapmak istediğinizde, çoğunlukla yalnızca datetime sınıfını kullanarak bütün işlerinizi halledebilirsiniz.

Dolayısıyla:

>>> from datetime import datetime

Komutunu vererek datetime modülü içindeki datetime adlı sınıfı içe aktarmayı tercih edebilirsiniz.

Bakalım datetime modülünün datetime sınıfı içinde neler varmış:

>>> dir(datetime)

['__add__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__',
'__forma t__', '__ge__', '__getattribute__', '__gt__', '__hash__',
'__init__', '__le__', '__lt__', '__ne__', '__new__', '__radd__',
'__reduce__', '__reduce_ex__', '__rep r__', '__rsub__', '__setattr__',
'__sizeof__', '__str__', '__sub__', '__subclass hook__', 'astimezone',
'combine', 'ctime', 'date', 'day', 'dst', 'fromordinal', 'fromtimestamp',
'hour', 'isocalendar', 'isoformat', 'isoweekday', 'max', 'microsecond',
'min', 'minute', 'month', 'now', 'replace', 'resolution', 'second',
'strftime', 'strptime', 'time', 'timestamp', 'timetuple', 'timetz', 'today',
'toord inal', 'tzinfo', 'tzname', 'utcfromtimestamp', 'utcnow', 'utcoffset',
'utctimetuple', 'weekday', 'year']

Elbette, eğer isterseniz doğrudan datetime modülünü de içe aktarabilirsiniz:

>>> import datetime

Bu durumda, datetime modülü içindeki datetime sınıfına erişmek için modül adını da kullanmanız gerekir:

>>> dir(datetime.datetime)

İşte biz bu bölümde, yukarıdaki komutun çıktısında gördüğümüz nitelik ve fonksiyonlar arasından en önemli olanlarını inceleyeceğiz.

now()​

datetime modülünün içindeki datetime sınıfının now() adlı fonksiyonu, bize içindeki bulunduğumuz andaki tarih, saat ve zaman bilgilerini verir. datetime modülünü import datetime şeklinde içe aktardığımızı varsayarsak bunu şu şekilde kullanıyoruz:
>>> an = datetime.datetime.now()

Bu fonksiyon bize datetime.datetime adlı özel bir sınıf nesnesi verir:
>>> an

datetime.datetime(2014, 12, 5, 9, 54, 53, 867108)

Bu özel sınıfın da kendine özgü birtakım nitelikleri bulunur.
Mesela year adlı niteliği kullanarak içinde bulunduğumuz yılı sorgulayabiliriz:
>>> an.year

2014

Aynı şekilde aşağıdaki nitelikler de, içinde bulunduğumuz ana ilişkin çeşitli bilgiler verir:
>>> an.month #ay

12

>>> an.day #gün

5

>>> an.hour #saat

10

>>> an.minute #dakika

20

>>> an.second #saniye

33

>>> an.microsecond #mikrosaniye

337309

today()​

Bu fonksiyon now() ile aynı içeriğe ve işleve sahiptir. today() fonksiyonunu now fonksiyonunu kullandığınız gibi kullanabilirsiniz:
>>> bugün = datetime.datetime.today()

>>> bugün.year

2014

>>> bugün.month

12

>>> bugün.minute

35

>>> bugün.second

24

>>> bugün.microsecond

669774

ctime()​

ctime() fonksiyonu, içinde bulunduğumuz ana ilişkin tarih ve zaman bilgilerini içeren okunaklı bir karakter dizisi verir. Bu fonksiyona, parametre olarak biraz önce oluşturduğumuza benzer bir datetime.datetime sınıfı vermemiz gerekir. Yani:
>>> an = datetime.datetime.now()
>>> tarih = datetime.datetime.ctime(an)
>>> tarih

'Fri Dec 5 10:30:35 2014'

Bu fonksiyon tarihleri İngilizce olarak gösterir. Yukarıdaki çıktıya göre tarih 5 Aralık Cuma 2014 saat 10:30:35.

strftime()​

strftime() fonksiyonu, size tarih ve zaman bilgilerini ihtiyaçlarınız doğrultusunda biçimlendirme imkanı sunar.
Bu fonksiyon toplam iki parametre alır. İlk parametre, tıpkı ctime() fonksiyonunda olduğu gibi, bir datetime.datetime sınıfıdır. İkinci parametre ise, tarih/zaman bilgisini içeren karakter dizisini nasıl biçimlendirmek istediğimizi gösteren bir biçimlendiricidir. Yani:
>>> an = datetime.datetime.now()
>>> tarih = datetime.datetime.strftime(an, '%c')
>>> tarih

'Fri 05 Dec 2014 12:53:21 PM '

Burada ilk parametre olarak an değişkeninin tuttuğu datetime.datetime sınıfını, ikinci parametre olarak ise %c adlı biçimlendiriciyi kullandık.
%c dışında başka tarih biçimlendiricileri de bulunur:
%a
hafta gününün kısaltılmış adı
%A
hafta gününün tam adı
%b
ayın kısaltılmış adı
%B
ayın tam adı
%c
tam tarih, saat ve zaman bilgisi
%d
sayı değerli bir karakter dizisi olarak gün
%j
belli bir tarihin, yılın kaçıncı gününe denk geldiğini gösteren 1-366 arası bir sayı
%m
sayı değerli bir karakter dizisi olarak ay
%U
belli bir tarihin yılın kaçıncı haftasına geldiğini gösteren 0-53 arası bir sayı
%y
yılın son iki rakamı
%Y
yılın dört haneli tam hali
%x
tam tarih bilgisi
%X
tam saat bilgisi
Yukarıdaki biçimlendiricilerle ilgili birkaç örnek verelim:
>>> datetime.datetime.strftime(an, '%Y') # Yıl

'2014'

>>> datetime.datetime.strftime(an, %'X') # Saat

'12:26:32'

>>> datetime.datetime.strftime(an, '%d') # Gün

'05'

strftime() fonksiyonu öntanımlı olarak İngilizce çıktı verecektir:
>>> datetime.datetime.strftime(an, '%A')

'Friday'

>>> datetime.datetime.strftime(an, '%B')

'December'

Eğer isterseniz, locale adlı başka bir modülü kullanarak, strftime() modülünün, sisteminizdeki tanımlı dili kullanmasını sağlayabilirsiniz.
Bunun için öncelikle locale modülünü içe aktaralım:
>>> import locale

Ardından Python’ın kullanmasını istediğimiz yerel/dil bilgisini, sistemdeki öntanımlı yerel/dil olarak ayarlayalım:
>>> locale.setlocale(locale.LC_ALL, '')



Bu çıktı bize sistemimizdeki tanımlı dilin/yerelin Türkçe olduğunu söylüyor. Bu komutu verdikten sonra, artık strftime() fonksiyonu, ilgili dile/yerele uygun bir çıktı verecektir:
>>> datetime.datetime.strftime(an, '%B')

'Aralık'

>>> datetime.datetime.strftime(an, '%A')

'Cuma'

Eğer isterseniz, dili kendiniz de seçebilirsiniz. Mesela İtalyanca yapalım:
>>> locale.setlocale(locale.LC_ALL, 'italian')

'Italian_Italy.1252'

>>> datetime.datetime.strftime(an, '%B')

'dicembre'

>>> datetime.datetime.strftime(an, '%A')

'venerdì'
 
Maalesef değişiklik olmadı.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…