TahsinCetinkaya adlı üyeden alıntı: mesajı görüntüle
01-01-1970 diye banlanacagına yada böyle bir süre baz alınacagına ileriki tarih baz alınsa? 2500'de ban açılacak demek banın açılmayacagı anlamına gelmiyor mu? mantıken insan da bu kadar yaşamaz zaten... ama ban açılacagı tarihin geçmişi baz alması banlanmaması demek değil mi?

Yada sistemin ileriki tarihi baz alması gerekirken ta 1970'e gitmesi şaşırttı beni.. Revive Old Post by ReviveSocial kullanıyorum tweet atmak başarılı olmayınca bu hatayı aldım..birde r10'un ban açılma tarihin aklıma gelince sormak istedim...Bilmemek ayıp değil öğrenmemek ayıp.
Unixtime 01.01.1970 00:00:00 zamanını sıfır kabul eder ve geçen her saniye 1 artar. Mesela bu yazıyı yazdığım saat 21.01.2017 20:20:24 buda unix time olarak 1485019224 integer tipindeki düz sayıya denk. Bilgisayarın bu sayıyı depolaması zamanı depolmasından daha kolay. Bu sayı benzersiz ama 12'lik zaman sistemi gün belirteçleri ile kullanılmadığında benzerlik taşıyan bir zaman (bozuk saat günde 2 defa doğruyu gösterir). Yani veritabanında 1.1.2016 08:00:00 diye bir kayıt var diyelim. Sistem 12 saatlik zaman kullanıyor. Bu kayıt sabah 8'imi akşam 8'imi gösteriyor bilemiyoruz.

Bunun ne zararı var? Zaman damgaları. Evrensel bir zaman kullanımı olmadığındna farklar çok feci riskler doğurabilir. Abartılı bir örnek ama diyelimki nükleer santrüfüjü kontrol eden bir yazılımın var. Bitirdin ve 12 saatlik zaman dilimi olan bir ülkede sabah 8'de imzaladın. İmza unix time kullanmıyor ve zamanı olduğu gibi gün belirteci (öğleden önce/öğleden sonra) olmadan kaydediyor. Bir başkası gelip kodunu nükleer santrüfüjü sabote ettirecek bir kodla değiştirse ve senin zaman damganı akşam 8'de tekrar etse gül gibi nükleer felaketin sorumlusu sen olursun. İşte unix time bu gibi bir karışıklığı engeller. Geçmişe dönülemez.

İkinci işe yarar nokta: Depolamak daha kolay dedik. İşlemekte daha kolay. Saate saat eklemek için düz toplamayı kullanamazsın. Unix timeda kullanabilirsin. Depolama konusunda da sayı daha az yer kaplıyor. Sistemlerde sıfırın yani 1970'in kullanılmasının bir sebebide bu. Sıfır bir bayt yer kaplıyor ama şu anki zaman 10 haneli ve 10 bayt yer kaplıyor. Büyük veritabanlarında bu veriler karmaşıklığa ve şişkinliğe yol açıyor. Unix time olmasaydı daha büyük bir şişkinlik olacaktı.

Bunun dışında birde geçersizlik olayı var. Zaman sıfıra dönemez. Zaman fonkiyonu sıfır değerini kabul etmez. Yani sistemin zamanına mdahale edebilecek bir kullanıcı 0'a asla dönemezken 2500 yılındaki unix epocha gidebilir. Sorunun asıl cevabıda bu. Niye bu kadar uzun anlattım bende bilmiyorum ama unix epoch anlayacağınız üzere önemli bir şey

Özetle; o tarih 01.01.1970 değil, sıfır. Bizim tarih okuyuşumuza göre çevrilmişi 01.01.1970 00:00:00.