Teknik yardım
Unix Timestamp saniye vs milisaniye: tarih neden 1970 gösteriyor
Unix timestamp 1970 civarı bir tarihe dönüşüyorsa, çoğu zaman saniye milisaniye olarak okunmuştur. Birimleri nasıl ayırt edeceğinizi görün.
Unix timestamp 1970 civarı bir tarih veriyorsa, değer çoğu zaman yanlış birimde yorumlanıyordur.
Unix timestamp genellikle saniye kullanır; JavaScript Date genellikle milisaniye kullanır.
Güncel 10 basamaklı timestamp çoğu zaman saniyedir, 13 basamaklı çoğu zaman milisaniyedir. Birimler uyuşmazsa 1.000 ile çarpmak veya bölmek gerekebilir.
Bir timestamp’i tarihe çevirdiniz ve Ocak 1970’e düştünüz. Saat neredeyse hiç bozuk değildir. Sayı saniye olarak saklanmışken milisaniye okunmuştur—ya da tersi.
Unix timestamp nedir?
Unix timestamp, Unix epoch’tan beri geçen süreyi ölçer: 1970-01-01 00:00:00 UTC. Genelde tam saniyedir. Aynı an milisaniye olarak da saklanabilir (saniye × 1.000). Sayının kendisi birimi yazmaz.
Saniye vs milisaniye: 1.000 kat fark
Bir saniye 1.000 milisaniyedir. 1720000000 ile 1720000000000 değerlerini karşılaştırın. İlki saniye, ikincisi milisaniye ise aynı andır. İlki milisaniye okunursa tarih 1970’e doğru zıplar.
Bu UTC sonuçları yukarıdaki sayılardan hesaplandı; tahmin değil.
| Değer | Olası birim | Yorum (UTC) |
|---|---|---|
| 1720000000 | Saniye | Saniye okunduğunda güncel tarih: 2024-07-03 09:46:40 UTC |
| 1720000000000 | Milisaniye | Milisaniye okunduğunda aynı an: 2024-07-03 09:46:40 UTC |
| 1720000000 milisaniye olarak | Yanlış birim | 1970 civarı tarih: 1970-01-20 21:46:40 UTC |
Timestamp’im neden 1970 gösteriyor?
Saniye değeri milisaniye gibi işlenirse sayı gerekenden 1.000 kat küçüktür. JavaScript o zaman Unix epoch’tan sonra kısa bir aralık sayar ve tarih 1970’te kalır:
const seconds = 1720000000;
new Date(seconds);
// 1970-01-20 21:46:40 UTC
new Date(seconds * 1000);
// 2024-07-03 09:46:40 UTC
O 1970 tarihi epoch artı yaklaşık iki haftadır. Date’e vermeden önce saniyeyi 1.000 ile çarpın.
- SANİYE
- 1720000000
- MİLİSANİYE
- 1720000000000
- Saniye değeri
- Yanlışlıkla milisaniye sayıldı
- 1970 civarı tarih
Sonuç 1970 civarındaysa saat dilimini araştırmadan önce timestamp birimini kontrol edin.
10 basamak saniye, 13 basamak milisaniye midir?
Güncel tarihlerde 10 basamak çoğu zaman saniye, 13 basamak milisaniyedir. Bu hızlı bir ipucu, doğrulama kuralı değil. Basamak sayısı zaman aralığına göre değişir; bazı API’ler mikrosaniye veya nanosaniye saklar. Birimi belgelere veya mantıklı bir tarihe bakarak doğrulayın.
Bu JavaScript’te neden bu kadar sık olur
JavaScript’te sayısal Date değeri epoch’tan beri milisaniyedir. Birçok backend, veritabanı ve Unix aracı hâlâ saniye saklar. Saniyeyi doğrudan Date’e vermek sık bir hatadır:
const unixSeconds = 1720000000;
const wrong = new Date(unixSeconds);
const correct = new Date(unixSeconds * 1000);
wrong 1970 civarındadır (1970-01-20 21:46:40 UTC). correct güncel andır (2024-07-03 09:46:40 UTC).
Başka sistemler başka birimler kullanır
Başka diller, API’ler ve veritabanları saniye veya milisaniye kullanabilir. Kimi mikrosaniye veya nanosaniye saklar. Bir dilin her zaman tek birim kullandığını varsaymayın—belgelere bakın. Sayı JSON’daysa JSON biçimlendir ve karşılaştır alanı okunaklı kılar; birimi yine söylemez.
Timestamp’imin birimini nasıl anlarım?
Bu kontrolleri sırayla uygulayın. Yalnızca basamak sayısı yetmez.
- API veya veritabanı belgelerine bakın.
- Yaklaşık basamak sayısına bakın.
- Değeri makul bir güncel timestamp ile karşılaştırın.
- Değeri saniye ve milisaniye olarak deneyin.
- Çıkan tarihin mantıklı olup olmadığına bakın.
Bir yorum 1970’e, diğeri tanıdığınız bir tarihe düşüyorsa neden birim uyumsuzluğudur.
Yaygın Unix timestamp hataları
- Saniyenin milisaniye sanılması. Tarih 1970’e doğru çöker, yukarıdaki örnekteki gibi.
- Milisaniyenin saniye sanılması. Tarih uzak geleceğe zıplar ya da dönüşüm başarısız olur.
- 1.000 ile iki kez çarpmak. Zaten milisaniye olan değer devleşir ve tarih yüzyıllar ileri gider.
- 1.000’e iki kez bölmek. Saniye değeri yeniden küçülür, yine 1970 civarına.
- Saat dilimini suçlamak. Bir dilim saatleri veya takvim gününü kaydırabilir. Güncel bir timestamp’i 1970 yapmaz.
- Biçimlenmiş tarih dizisini Unix timestamp saymak. 2024-07-03T09:46:40Z gibi bir değer epoch sayısı değildir. Saniye değil, tarih dizisi olarak ayrıştırın.
Saat dilimi 1970 sorununa yol açar mı?
Genelde hayır. Saat dilimi gösterilen saati ve gece yarısına yakın takvim gününü değiştirebilir. Güncel bir Unix timestamp’i 1970 yapmaz. Sonuç 1970 ise önce saniye ile milisaniyeyi kontrol edin.
Unix timestamp dönüştürüp kontrol edin
NEXNARA Tarih ve saat dönüştürücü tarayıcıda Unix timestamp dönüştürebilir.
Unix saniye veya milisaniye yapıştırın, geçerli timestamp’i kullanın, UTC ve yerel saati görün, dilimleri dönüştürün ve tarihi biçimleyin. Otomatik algılama çoğu zaman 10 basamağı saniye, 13’ü milisaniye sayar; birimi yine siz seçebilirsiniz.
Dönüşümün kendisi tarayıcınızda olur. Bu araç tarih veya timestamp’leri bir NEXNARA sunucusuna göndermez. Reklamlar ve diğer site özellikleri hâlâ ağı kullanır; bu dönüşümden ayrıdır.
Unix timestamp kontrol etmek mi istiyorsunuz? Tarih ve saat dönüştürücü açın, saniyeyi milisaniyeyle karşılaştırın.
FAQ
Unix timestamp’im neden 1970 gösteriyor?
Çoğu zaman milisaniye okunan saniyedir. JavaScript çok daha küçük bir sayıyı işler, tarih 1970-01-01 00:00:00 UTC sonrasına düşer. Saniyeyi 1.000 ile çarpıp yeniden dönüştürün.
Unix timestamp saniye mi milisaniye mi?
Genelde saniye. Birçok web API’si ve JavaScript Date milisaniye kullanır. O sistemin belgelerine bakın. Kimi sistemler mikrosaniye veya nanosaniye kullanır.
Saniyeyi milisaniyeye nasıl çeviririm?
1.000 ile çarpın. 1720000000 saniye 1720000000000 milisaniyedir. Tersi için 1.000’e bölün.
JavaScript Date neden milisaniye kullanır?
JavaScript’te sayısal Date timestamp’i Unix epoch’tan beri milisaniye olarak tanımlıdır. Bu yüzden unixSeconds Unix saniyesiyken new Date(unixSeconds) yanlıştır.
10 basamaklı timestamp her zaman saniye midir?
Hayır. Güncel tarihlerde çoğu zaman saniyedir, 13 basamak çoğu zaman milisaniyedir. Basamak sayısı ipucudur, kural değil. Belgelerle veya mantıklı bir tarihle doğrulayın.
Unix timestamp saat dilimi içerir mi?
Hayır. Unix timestamp 1970-01-01 00:00:00 UTC anından sayılan bir andır. Saat dilimleri gösterimi etkiler, sayının kendisini değil.