2014-04-14 11 views
48

Konu olarak; her zaman diliminde UNIX zaman damgası değişiyor mu? ÖrneğinUnix zaman damgası saat dilimlerinde değişir mi?

, ben diğer sunucunun damgası kendi arkasında 12 saat olurdu, "zamanı 1397484936 olduğunda e-posta göndermek", diyerek başka e-postaya dünyanın diğer tarafını bir isteği gönderirse ?

+1

Hayır, belirli bir noktadan bu yana geçen saniye sayısıdır. –

cevap

86

UNIX zaman damgasının tanımı, saat dilinden bağımsızdır. Zaman damgası, UTC zamanındaki 1 Ocak 1970 gece yarısı zamanında mutlak bir noktadan bu yana geçen saniye (veya milisaniye) sayısıdır. (UTC, Günışığı Tasarrufu zaman ayarlamaları olmadan Greenwich Ortalama Saatidir.) Saat diliminizden bağımsız olarak, bir zaman damgası her yerde aynı olan bir anı temsil eder. Tabii ki isterseniz 'a yerel bir saat dilimi gösterimini (zaman 1397484936, New York'ta böyle bir yerel saat ya da Djakarta'da başka yerel saat) dönüştürebilirsiniz.

Daha uzun okumak isterseniz, http://en.wikipedia.org/wiki/Unix_time adresindeki makale oldukça etkileyicidir.

+7

Diğer hayatımda uçuş eğitmeni olarak çalışıyorum. Kalkış ve iniş zamanları için UTC ("Zulu zaman" olarak da bilinir) kullanırız, böylece zaman arasındaki uçurumu * uçuşun uzunluğunun doğru bir ölçümüdür, hangi saat dilimini başlangıç ​​ve bitiş havalimanlarında dikkate almak zorunda kalmadan Gerçekten de, gün ışığından yararlanma saati ile başlayan ve sonrasında biten ya da tam tersi uçuşları aldım! Bu cevaba – RobP

+6

+1. Açıklığa kavuşmaya yardımcı olabilecek bir fikir eklemek için: zaman damgasının kendisi UTC değildir; zaman damgası, zaman içindeki bir referans noktasından geçen bir (milli) saniye sayısıdır. Unix zaman damgası (Unix dönemi) için referans noktası, UTC olanıdır: 00:00:00 UTC 1970.01.01 – Sandman

+0

@Sandman'ın yanıtının daha da kapalı olması, başlangıçtan 1397484936 saniye sonra, 1397484936 saniyedir. Başka bilim dallarına girmeden, dünyanın her yerinde bu noktada 1397484936 saniye geçmiştir. Bu 1397484936 saniye geçtiğinde, saat 21: 00'te New York'ta, saat 16: 00'da, Londra'da, yerel saat * bölgeleri * – conrad10781

2

Unix zaman Perşembe, 00:00:00 eşgüdümlü evrensel saat (UTC ) itibaren geçen saniye sayısı olarak tanımlanır, 1 Ocak 1970. Yani cevap hiçbir

3

hem EĞER olduğunu bilgisayarlar doğru saat dilimi ve UTC değerleri için ayarlanmış saatleriyle doğru şekilde ayarlanmış, aynı değeri döndürmelidir.
Elbette bu büyük bir IF. İki bilgisayar tarafından bildirilen zaman arasında en az ikinci, daha sık dakikalar arasında bir fark olması neredeyse kesin. Ve birçok bilgisayar yanlış saat dilimi ayarlarına sahip olacak şekilde ayarlandı ve yerel saatlerini UTC yerine zaman damgası sorduğunda bildirecek.

Ve bu teori ve uygulama arasındaki farktır. Teoride hepsi aynıdır, pratikte asla ona güvenmemelisiniz.

0

Unix zaman damgaları Saat dilimlerini değiştirmeyin, bunlar dünya çapında standart bir zaman geçirme amacıyla oluşturulmuştur.

NOT: - Zaman damgaları bilgisayar şimdiki zaman bazında hesaplanır böylece dek onlara güveniyor ve yok sen katılan makinelerinde zaman ayarları hakkında çok emin olmadıkça.