1/1/1970 neden “çağ dönemi”?


456

Neden ki

1 Ocak 1970 00:00:00

Dönemini düşündünüz mü?


21
Neden kimse bunun öznel olduğunu düşündüm emin değilim. 'Dönem' süresi standart bir zaman damgası şemasıdır.
ConcernedOfTunbridgeWells

5
Bugün saat 380.000 saat idi
mplungjan

21
Bu tarihten itibaren zaman saymaya başlamalıyız, bu yüzden şimdi 44
yaşındayız.

3
Bugün, şu anda, 1499969999! Sadece yaklaşık. 8 saat kaldı!
Dr Beco

1
@LeonardoRaele Evet! örneğin, II. Dünya Savaşı BE 31 yılında başladı!
Siavash Mortazavi

Yanıtlar:


418

Unix'in ilk sürümleri sistem süresini 1/60 s aralıklarla ölçtü. Bu, 32 bit işaretsiz bir tam sayının yalnızca 829 günden daha kısa bir süreyi temsil edebileceği anlamına geliyordu. Bu nedenle, 0( çağ olarak adlandırılan ) sayının temsil ettiği zamanın yakın geçmişte ayarlanması gerekiyordu. Bu 1970'lerin başında olduğu gibi, çağ 1971-1-1 olarak belirlendi.

Daha sonra, sistem süresi her saniye artmaya değiştirildi ve bu da 32 bit işaretsiz tam sayı ile temsil edilebilecek süreyi 136 yıla çıkardı. Tezgahın her saniyesini sıkmak artık çok önemli olmadığından, çağ en yakın on yıla yuvarlanarak 1970-1-1 oldu. Bunun 1971-1-1'den biraz daha temiz olduğu düşünülmelidir.

32 bit olduğunu Not imzalı için tarihleri kadar temsil edebilir kendi çağının olarak 1970-1-1 kullanarak tamsayı 2038-1-19 , hangi tarih üzerinde bu 1901-12-13 etrafında kaydırılır.


30
1/60'ın Amerikan güç ağının frekansı ile ilgisi var mı?
xtofl

55
O sırada kullanılan sistem kartlarındaki osilatörlerden birinin frekansıdır. Osilatörün DC'de çalıştığı için 60Hz olması gerekli değildi, ancak o sırada en yaygın olanı kullanmak ucuzdu ve televizyonlar o zaman seri üretiliyordu ...
Matt Howells

18
Aslında, o zamanlar bilgisayar saatleri ve RTC'lerin ABD şebeke dalga formu ile senkronize edilmesi çok yaygındı çünkü çok güvenilirdi. İşlemci saatini almak için çarpıldı ve RTC için saniye almak üzere bölündü.
Alexios

12
@mafioso: Doğru, 2038 -... 1901-12-13 için dizüstü bilgisayarımda bir hatırlatma ayarlayacağım.

18
@JediKnight Bu, bir geliştirici olarak kendi deneyimlerime dayanan bir spekülasyon: bir standardın değiştirilmesi zaman alır ve değişikliğiniz beklemezse, rakip standartlarla sonuçlanırsınız . Dönem sorununa gerçek çözüm, dönemi ileriye taşımayan 64 bit tamsayılardır.
Jake

51

Tarih .

Unix zamanının en eski versiyonlarında, erken Unix sistemlerinin donanımındaki sistem saatinin oranı olan 60 Hz hızında 32 bit tam sayı arttı. Sonuç olarak bazı yazılım arayüzlerinde 60 Hz değeri görünmeye devam eder. Dönem ayrıca mevcut değerden farklıydı. 3 Kasım 1971 tarihli ilk baskı Unix Programcı El Kitabı, Unix süresini "saniyenin altmışıncı saniyesinde ölçülen 00:00:00, 1 Ocak 1971'den beri geçen zaman" olarak tanımlar.


1
Dönem 1 Ocak 1971 değil, 1 Ocak 1970'tir.
Steve Harrison

10

http://en.wikipedia.org/wiki/Unix_time#History , Unix zamanının kökenleri ve seçilen dönem hakkında biraz açıklıyor. Unix zamanının tanımı ve çağ tarihi, şu an ne olduğuna karar vermeden önce birkaç değişiklik geçirdi.

Ancak sonunda 1/1/1970'in tam olarak neden seçildiğini söylemiyor.

Wikipedia sayfasından dikkat çekici alıntılar:

İlk baskısı "00:00:00 beri süre, 1 Ocak olarak Unix Programcı Kılavuzu 3 Kasım tarihli 1971 tanımlar Unix zaman 1971 saniyenin sixtieths ölçülen,".

Sınırlı aralık nedeniyle , hız 1 Hz olarak değiştirilmeden ve çağın mevcut değerine ayarlanmasından önce , dönem bir kereden fazla yeniden tanımlandı .

Mevcut tanımın karmaşıklığı da dahil olmak üzere daha sonraki bazı problemler, Unix süresinin başlangıç ​​olarak tamamen tanımlanmak yerine kullanımla kademeli olarak tanımlanmasından kaynaklanmaktadır.


6

Dönem referans tarihi

Bir çağ referans tarihi , zaman çizelgesinde zamanı saydığımız bir noktadır. Bu noktadan önceki anlar negatif sayıyla, sonraki anlar pozitif sayıyla sayılır.

Kullanılan birçok dönem

1 Ocak 1970 00:00:00 neden çağ zamanı olarak değerlendiriliyor?

Hayır, çağ, bir dönem. Kullanımda birçok dönem var .

Bu çağ seçimi keyfidir .

Büyük bilgisayar sistemleri ve kütüphaneleri en az birkaç düzine çeşitli dönemin herhangi birini kullanır . En popüler dönemlerden biri , bahsettiğiniz 1970 UTC anını kullanarak genellikle Unix Saati olarak bilinir .

Popüler olsa da, Unix Time'ın 1970'i en yaygın olmayabilir . Ayrıca en yaygın koşu sayısız Microsoft Excel ve Lotus 1-2-3 elektronik tablo için 0 Ocak 1900 veya Apple'ın Kakao çerçevesi tarafından dünya çapında sayısız uygulamada bir milyardan fazla iOS / macOS makinesinde kullanılan 1 Ocak 2001 olacaktır. Ya da 6 Ocak 1980 GPS cihazları tarafından kullanılıyor olabilir mi?

Birçok ayrıntı düzeyi

Farklı sistemler sayım süresinde farklı ayrıntı düzeyi kullanır.

“Unix Zamanı” denen şey bile değişir, bazı sistemler tam saniyeyi ve bazıları milisaniyeyi sayar . Postgres gibi birçok veritabanı mikrosaniye kullanır . Java 8 ve sonraki sürümlerdeki modern java.time çerçevesi gibi bazıları nanosaniye kullanır . Bazıları hala diğer ayrıntı düzeylerini kullanır.

ISO 8601

Bir çağ referansının ve taneciklerin kullanımında çok fazla farklılık olduğu için, anları çağdan itibaren saymak olarak iletmekten kaçınmak genellikle en iyisidir. Çağ ve tanecikliğin belirsizliği ile insanların anlamlı değerleri algılayamamaları (ve dolayısıyla buggy değerlerini kaçırmamak) arasında sayılar yerine düz metin kullanın.

ISO 8601 standardı metin olarak tarih-zaman değerlerini ifade etmek için pratik iyi tasarlanmış biçimlerinin geniş bir kümesi sağlar. Bu formatların makine tarafından ayrıştırılması ve aynı zamanda kültürler arasında insanlar tarafından okunması kolaydır.

Bunlar:


-10

Kısa cevap: Neden olmasın?

Daha uzun cevap: Onu kullanan herkesin değerini kabul ettiği sürece, zamanın kendisi gerçekten önemli değildir. 1/1/70 uzun süredir kullanımda olduğu için, kullanmak mümkün olduğunca çok kişi için mümkün olduğunca anlaşılır bir kodlama sağlayacaktır.

Sadece farklı olmak için keyfi bir dönem seçmenin büyük bir değeri yoktur.


37
Çünkü Unix 1969'da geliştirildi ve ilk olarak 1971'de piyasaya sürüldü ve bu nedenle hiçbir makinenin 1970-01-01-00: 00: 00'dan daha erken bir sistem zamanını temsil etmesi gerekmediğini varsaymak mantıklıydı.
Jörg W Mittag

3
Tarihsel simülasyon oyunlarının geliştiricisi olarak, bazı zaman nesnelerinin tasarımcılarının tüm programların sadece gelecekteki veya yakın geçmişteki tarihleri ​​temsil etmek isteyeceğini varsaymalarına oldukça aptalca görünüyor. Tabii ki, kendi temsillerimizi programlayabilir veya bir ayarlama faktöründe çalışabiliriz, ancak yine de.
Dronz

8
Aynı dönem öncesi sorun, iş tabloları, bilimsel veri sunumu, zaman makinesi kullanıcı arayüzleri, vb.
Gibi

7
@Dronz Bunun, CPU olarak mantık kapıları için transistörler ve diyotlar (o zaman cips yok!) Kullanan 9KB RAM'e sahip 72000 $ 'lık bir bilgisayar için tasarlandığını dikkate almalısınız. Bu yüzden işe yarayan en temel şeyi yapmak "aptalca" değildi.
Camilo Martin

2
OP meta düzeyde doğrudur, zaman için çalıştığımız şemalar her zaman oldukça keyfidir. Bir yıldaki gün sayısı, aydaki gün sayısı, "0" yılı ve artık yıl kuralları ... çılgın. Her sistem sadece bir dizi boktan uzlaşmadır, çünkü mevcut teknoloji ile yapabildikleri en iyisiydi ve acil kullanım durumları için yeterince iyi çalıştılar. Bu da tüm mühendislik projeleri için geçerli
:)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.