Yaz bak, sonra unutursun (Part1)
Python tarih / saat biçimleri
Python’da bir şeyler yazarken beni en çok uğraştıran konulardan biri tarihleri istediğim formata sokmak. Aşağıdaki kısa örnekleri ilerde dönüp bakabilmek için buraya ekliyorum.
Lokal zamanı ISO 8601 formatına çevirmek
*now yerine utcnow da kullanabilirsiniz.
import datetime
datetime.datetime.now().isoformat()
>>> 2021-12-06T14:28:23.382748
Lokal zamanı ISO 8601 formatına mikrosaniyeler olmadan çevirmek
import datetime
datetime.datetime.now().replace(microsecond=0).isoformat()
>>> 2021-12-06T14:30:43
UTC olan zamanı timezone bilgisi ile ISO 8601 formatına çevirmek
import datetime
datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc).isoformat()
>>> 2021-12-06T01:31:12.467113+00:00
Tarih verisini istediğiniz biçimde göstermek için “strftime” özelliğiyle tarih / saat verinizi biçimlendirebilirsiniz. Gerekli gösterim parametreleri aşağıdaki tabloda.
import datetime
x = datetime.datetime.now()
print(x.strftime("%Y-%m-%d %H:%M:%S"))
| %a | Haftanın Günü Kısa gösterim | Wed |
| %A | Haftanın Günü Uzun gösterim | Wednesday |
| %w | Haftnın kaçıncı günü olduğu (0-6 arasında, 0 Pazar) | 3 |
| %d | Ayın kaçıncı günü olduğu (01-31 arasında) | 31 |
| %b | Ayın adı Kısa gösterim | Dec |
| %B | Ayın adı Uzun gösterim | December |
| %m | Ayın sayısal gösterimi 01-12 | 12 |
| %y | Yılın son iki hanesi | 18 |
| %Y | Yılın uzun gösterimi | 2018 |
| %H | Saat 00-23 arası | 17 |
| %I | Saat 00-12 arası | 5 |
| %p | AM/PM Bilgisi | PM |
| %M | Dakika 00-59 arası | 41 |
| %S | Saniye 00-59 arası | 8 |
| %f | Milisaniye 000000-999999 arası | 548513 |
| %z | UTC offset | 100 |
| %Z | Timezone | CST |
| %j | Yılın kaçıncı günü olduğu 001-366 arası | 365 |
| %U | Haftanın ilk gününü pazar kabul ederek yılın kaçıncı haftası olduğu 00-53 arası | 52 |
| %W | Haftanın ilk gününü pazartesi kabul ederek yılın kaçıncı haftası olduğu 00-53 arası | 52 |
| %c | Yerel gösterimle tarih ve saat bilgisi | Mon Dec 31 17:41:00 2018 |
| %C | Yüzyıl gösterimi | 20 |
| %x | Yerel gösterimle sayısal tarih bilgisi | 12/31/2018 |
| %X | Yerel gösterimle saat bilgisi | 17:41:00 |
| %% | “%” İşareti | % |
| %G | ISO 8601 formatında yıl | 2018 |
| %u | ISO 8601 formatında haftanın günü (1-7) | 1 |
| %V | ISO 8601 formatında hafta sayısı (01-53) | 1 |