Bazı yerlerde tarih ve saat verisi yerine bir "timespan" veri türünün kullanıldığını görüyorum. Bu timespan veritipi, 1 Ocak 1970 00:00:00'ı milat kabul ederek bu tarih, saat, dakika ve saniyeden sonra geçen saniyeleri bize söyler. Örneğin 1659590505 gibi bir veri, bu dijital milat tarihinden sonra 1,659,590,505 saniye geçtiğini gösterir. Bunu mantıklı bir tarih saat verisine çevirmek için
PS> (Get-Date 01.01.1970).AddSeconds(1659590505)
4 Ağustos 2022 Perşembe 05:21:45
kullanabiliriz. Burada 01.01.1970'in de, dönülen tarih ve saatin de UTC (merkezi saat) olduğu varsayılır. Yani üzerine bulunulan saat dilimini (Türkiye için +03:00) eklemek gerekir. Tam tersi için
PS> [int][double]::Parse((Get-Date (get-date).touniversaltime() -UFormat %s))
kullanılması önerilmiş, epochconverter.com sitesinde. Python'da ise
>>> import time
>>> int(time.time())
kullanılmış. Timestamp diye kısalttığım veri tipi aslında epoch timetamp ya da Unix timestamp olarak adlandırılıyor. .Net framework'te 8 byte olarak yer kaplayan ve 1.1.0000 tarihinden 31.12.9999 tarihine kadar olan aralıkta saniye hassasiyetinde çözünürlüğe sahip bir veri tipi. Ancak Unix, 4 byte hassasiyete sahip bu veri tipi ile hem yarısı kadar hafıza kullanımı hem de Unix/Linux dünyasında bir standardizasyon sunuyor. 32 bitlik tamsayı kullandığımızı varsayarak timestamp kullanarak 01.01.1970 00:00:00 ile 07.02.2106 06:28:16 zaman aralığında saniye hassasiyetinde çözünürlük mümkün. Bazı durumlarda signed int kullanılmışsa son tarih 19.01.2038 03:14:08 olabilir. Önümüzde kabaca bi 15 sene var, yeni bir Y2K38 dijiatal kıyameti için.
Hiç yorum yok:
Yorum Gönder