Kenapa
1 Januari 1970 00:00:00
dianggap sebagai zamannya ?
Kenapa
1 Januari 1970 00:00:00
dianggap sebagai zamannya ?
Jawaban:
Versi awal unix mengukur waktu sistem dalam interval 1/60 dtk. Ini berarti bahwa integer 32-bit unsigned hanya dapat mewakili rentang waktu kurang dari 829 hari. Untuk alasan ini, waktu yang diwakili oleh angka 0
(disebut zaman ) harus ditetapkan di masa lalu. Karena ini pada awal 1970-an, zaman ditetapkan untuk 1971-1-1.
Kemudian, waktu sistem diubah menjadi kenaikan setiap detik, yang meningkatkan rentang waktu yang dapat diwakili oleh integer 32-bit unsigned menjadi sekitar 136 tahun. Karena tidak lagi begitu penting untuk memeras setiap detik dari meja, zaman itu dibulatkan ke dekade terdekat, sehingga menjadi 1970-1-1. Orang harus berasumsi bahwa ini dianggap sedikit lebih rapi daripada 1971-1-1.
Perhatikan bahwa integer bertanda 32-bit menggunakan 1970-1-1 sebagai zamannya dapat mewakili tanggal hingga 2038-1-19 , pada tanggal mana ia akan membungkus sekitar 1901-12-13.
Sejarah .
Versi awal waktu Unix memiliki bilangan bulat 32-bit pada kecepatan 60 Hz, yang merupakan laju jam sistem pada perangkat keras sistem Unix awal. Nilai 60 Hz masih muncul di beberapa antarmuka perangkat lunak sebagai hasilnya. Zaman juga berbeda dari nilai saat ini. Edisi pertama Manual Programmer Unix tanggal 3 November 1971 mendefinisikan waktu Unix sebagai "waktu sejak 00:00:00, 1 Januari 1971, diukur dalam enam puluh detik per detik".
http://en.wikipedia.org/wiki/Unix_time#History menjelaskan sedikit tentang asal-usul waktu Unix dan zaman yang dipilih. Definisi waktu unix dan tanggal zaman mengalami beberapa perubahan sebelum menstabilkan apa yang sekarang.
Tetapi tidak disebutkan mengapa tepatnya 1/1/1970 dipilih pada akhirnya.
Kutipan penting dari halaman Wikipedia:
The edisi pertama Pedoman tanggal November 3, 1971 mendefinisikan waktu Unix Unix Programmer sebagai "waktu sejak 00:00:00, 1 Jan., tahun 1971 , diukur dalam sixtieths detik".
Karena rentang terbatas, zaman itu didefinisikan ulang lebih dari sekali , sebelum laju diubah menjadi 1 Hz dan zaman ditetapkan ke nilai sekarang.
Beberapa masalah kemudian, termasuk kompleksitas definisi saat ini, hasil dari waktu Unix yang telah ditentukan secara bertahap oleh penggunaan daripada sepenuhnya didefinisikan untuk memulai.
Sebuah tanggal referensi zaman adalah titik pada timeline dari mana kita menghitung waktu. Momen sebelum titik itu dihitung dengan angka negatif, beberapa saat setelahnya dihitung dengan angka positif.
Mengapa 1 Januari 1970 00:00:00 dianggap sebagai masa jaman?
Tidak, tidak pada zaman, suatu zaman. Ada banyak zaman yang digunakan .
Pilihan zaman ini adalah arbitrer .
Sistem komputer utama dan perpustakaan menggunakan setidaknya beberapa lusin zaman yang berbeda . Salah satu zaman paling populer umumnya dikenal sebagai Waktu Unix , menggunakan momen UTC 1970 yang Anda sebutkan.
Meskipun populer, Unix Time's 1970 mungkin bukan yang paling umum. Juga sedang berjalan untuk yang paling umum adalah 0 Januari 1900 untuk spreadsheet Microsoft Excel & Lotus 1-2-3 yang tak terhitung jumlahnya, atau 1 Januari 2001 yang digunakan oleh kerangka kerja Kakao Apple di lebih dari satu miliar mesin iOS / macOS di seluruh dunia dalam aplikasi yang tak terhitung jumlahnya. Atau mungkin 6 Januari 1980 digunakan oleh perangkat GPS ?
Sistem yang berbeda menggunakan rincian yang berbeda dalam menghitung waktu.
Bahkan yang disebut "Waktu Unix" bervariasi, dengan beberapa sistem menghitung detik penuh dan beberapa milidetik penghitungan . Banyak basis data seperti Postgres menggunakan mikrodetik . Beberapa, seperti kerangka java.time modern di Java 8 dan yang lebih baru, menggunakan nanodetik . Beberapa masih menggunakan granularities lainnya.
Karena ada begitu banyak perbedaan dalam penggunaan referensi zaman dan dalam granularities, umumnya terbaik untuk menghindari berkomunikasi saat sebagai hitungan-dari-zaman. Antara ambiguitas zaman & granularitas, ditambah ketidakmampuan manusia untuk memahami nilai-nilai yang bermakna (dan karenanya kehilangan nilai-nilai kereta), gunakan teks biasa alih-alih angka.
Standar ISO 8601 menyediakan serangkaian luas format praktis yang dirancang dengan baik untuk mengekspresikan nilai waktu-tanggal sebagai teks. Format ini mudah diurai oleh mesin serta mudah dibaca oleh manusia lintas budaya.
Ini termasuk:
2019-01-23
2019-01-23T12:34:56.123456Z
2019-01-23T18:04:56.123456+05:30
2019-234
Jawaban singkat: Kenapa tidak?
Jawaban yang lebih panjang: Waktu itu sendiri tidak terlalu penting, selama semua orang yang menggunakannya setuju dengan nilainya. Karena 1/1/70 telah digunakan sejak lama, menggunakannya akan membuat kode Anda dapat dimengerti oleh sebanyak mungkin orang.
Tidak ada manfaat besar dalam memilih zaman yang sewenang-wenang hanya untuk berbeda.