SORU
28 Mart 2010, Pazar


Zaman ve en iyi ışığından bölge uygulamaları

Bu soru ve Cevaplar, gün ışığından yararlanma saati ile ilgili kesin bir rehber, gerçek bir değişim eylemi ile başa çıkmak için özellikle yapmayı umuyorum.

Eğer eklemek istediğiniz bir şey varsa lütfen yapın

Çoğu sistemde, doğru zaman, sorun, gün ışığından yararlanma nedeniyle zaman değişiklikleri ile ileri veya geri saat hareketli tutmak bağlıdır.

Örneğin, bir sipariş zaman bağımlı bir sistem sipariş alarak iş kuralları vardır - eğer saat değişirse, kural olarak açık olmayabilir. Nasıl sipariş zaman kalıcı olmalıdır? Tabii ki senaryolar da sonsuz sayıda - bu sadece bir örnek biridir.

  • Nasıl gün ışığından yararlanma sorunu ile ilgili?
  • Varsayımlar çözümünüz ne? (içerik için)

Fazla olmasa da önemli olarak,:

  • Sen bu işe yaramadı denedin mi?
  • Neden işe yaradı?

Programlama, işletim sistemi, veri sebat ve konunun diğer ilgili yönleri ilgi olacaktır.

Genel cevaplar harika, ama aynı zamanda, özellikle eğer sadece bir platform varsa ayrıntılarını görmek istiyorum.

CEVAP
28 Mart 2010, Pazar



Cevaplar ve diğer veri özeti: (seninki de ekleyin lütfen

Yapın:

  • Aynı anda bir an için başvuran zaman, gün ışığından yararlanma etkilenmez birleşik bir standart göre saat sürüyor. (GMT ve UTC Bu konuda ile eşdeğerdir, ama dönem UTC kullanılması tercih edilir.)
  • Bunun yerine bir süre yerel saat değeri kullanmaya devam etmek isterseniz, yerel saat UTC uzaklığı, zaman damgası sonra yorumlanabilir böyle açıkça vardır.
  • Sayısal bir değer olarak zaman saklarken, 1970-01-01T00:00:00Z beri bütün saniye sayısı olan Unix time - kullanın. Eğer daha yüksek hassasiyet gerektiren, millisconds kullanın. Bu değer her zaman herhangi bir zaman dilimini ayarlama olmadan UTC dayalı olmalıdır.
  • Daha sonra zaman damgası değiştirmek gerekebilir, eğer uzaklık olmadığını belirlemek, böylece bölge KİMLİĞİ, özgün değeri kaydedilen değişmiş olabilir özgün zaman vardır.
  • Gelecekteki olaylar, zamanlama, genellikle yerel saati değiştirmek için kaydırma için yaygın olarak UTC yerine tercih edilmektedir. See answer.
  • Dilimi uzaklıklar hep saat (örneğin, Hint Standart Saati 05:30 ve Nepal kullanır 05:45 UTC UTC) bir tamsayı değil hani.
  • Eğer Java kullanıyorsanız, 8 ya da Java 7 Joda Time kullanın veya daha düşük Java için java.time kullanın.
  • Eğer .NET, Noda Time kullanmayı düşünün kullanıyorsanız.
  • Eğer Perl kullanıyorsanız, DateTime kullanın.
  • Eğer Python kullanıyorsanız, pytz dateutil kullanın.
  • Eğer JavaScript kullanıyorsanız, moment-timezone uzantılı moment.js kullanın.
  • Eğer PHP ^ kullanıyorsanız . 5.2 yerel saat dilimleri dönüşümleri ** 1 ve DateTimeZone sınıflar tarafından sağlanan kullanın. * - see answer*3 kullanırken dikkatli olun. Güncel Olson veri ile PHP tutmak için, periyodik olarak the timezonedb PECL paketi; see answer yükleyin.
  • Eğer C kullanıyorsanız 11/14 <chrono> IANA timezone database dayanan this library kullanmayı düşünün.
  • Çoğu iş kuralları sivil zaman, yerine UTC veya GMT kullanın. Bu nedenle, uygulama mantığı uygulamadan önce yerel zaman dilimi UTC zaman dönüştürmek için planı.
  • Saat dilimleri ve uzaklıklar sabit değildir ve değişebilir olduğunu unutmayın. Örneğin, tarihsel olarak ABD ve İNGİLTERE için aynı tarihlerde kullanılan 'bahar ileri' ve 'geri çekilin'. Ancak, 2007 yılında ABD, saatler değişti bu tarihler değişti. Bu şimdi demek için 48 hafta, yıl arasındaki fark zaman Londra ve New York saati ile 5 saat ve 4 Hafta (3, bahar 1 güz) 4 saat. Birden fazla bölge ile ilgili herhangi bir hesaplama bu gibi öğelerin farkında olun.
  • Düşünün türü süresi (gerçek olay saati, yayın süresi, göreli zaman, geçmiş zaman, yinelenen zaman ne öğeleri (zaman damgası, saat dilimi uzaklığı ve saat dilimi adı) ihtiyacınız saklamak için doğru alım - bakın "Türlerinin Zaman" answer.
  • Kendileri ve dünyanın geri kalanı arasında OS, senkronize veritabanı ve uygulama tzdata dosyaları tutmak.
  • Sunucularda, UTC ziyade yerel saat dilimi için donanım saatler ve OS saatler ayarlayın.
  • Önceki madde işareti noktası ne olursa olsun,sunucu tarafı kodu, web siteleri de dahil olmak üzere,aslayerel zaman özel bir şey olması için sunucunun dilimini bekliyoruz. see answer.
  • Tüm sunucularda NTP hizmetleri kullanın.
  • Eğer FAT32 kullanarak zaman zaman yerel olarak saklanır unutmayın, UTC.
  • Olaylar, haftalık TV programı, örneğin) yinelenen ile uğraşırken, zaman DST değişiklikleri ve zaman dilimleri arasında farklı olacağını unutmayın.
  • Her zaman sorgu tarih-saatlower-bound inclusive, upper-bound exclusive değerleri(, *>=*6).

Yok:

  • Bir karıştırmayın "time zone", bir ile America/New_York gibi "saat dilimi uzaklığı", -05:00. gibi İki farklı şeylerdir. the timezone tag wiki bkz.
  • Date tarih ve saat hesaplamaları gerçekleştirmek için, 5.1 ve daha düşük olarak ECMA nesne JavaScript kullanmayın vardır Yaz Saati yanlış kullanan a design flaw.
  • Asla müşterinin saat güven. Çok iyi yanlış olabilir.

Test:

  • Test Batı ve Doğu yarımkürede bulunan ülkeler test emin olun, devam eden her iki DST ile, DST kullanmayan bir ülke (6 toplam).
  • Üçüncü taraf kitaplıkları ve uygulamaları Test ve saat dilimi verileri doğru bir şekilde ele emin olun.
  • Yarım saatlik zaman dilimi testi, en azından.

Referans:

Diğer:

  • Temsilcisi DST bu iğrenç şeyin sonu vardır. Her zaman umut edebiliriz...
  • Earth Standard Time için lobi

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • InsideBlackBerry

    InsideBlackB

    14 Aralık 2009
  • Pituvision

    Pituvision

    11 Mart 2006
  • TomSka

    TomSka

    30 Mayıs 2006