Aracılığıyla paylaş


choose sabit listesi

ve ile birlikte zoned_time time_zone kullanıldığında, dönüştürme işlemine belirsiz veya var local_time olmayan bir yöntemin sys_time nasıl işleneceğini belirtir.

Sözdizimi

enum class choose { // C++20
    earliest,
    latest
};

Üyeler

Öğe Açıklama
earliest Zaman dönüştürme belirsizse, önceki zaman noktasını kullanır.
latest Zaman dönüştürme belirsizse, sonraki zaman noktasını kullanır.

Açıklamalar

Dönüştürmenin sonucu bir nonexistent_local_timeise ve içindeki earliest latest süre aynıdır.

Belirsiz dönüştürme hatası

Gün ışığından yararlanma saatinden sonbaharda standart saate geçiş sırasında, saatler temelde fazladan bir saat kazanır. Bu kafa karıştırıcı olabilir çünkü standart saate geçiş bir saat kaybetme anlamına gelmez mi? Bir saat geriye düştüğünde, geçiş öncesi saat standart saat için ayarladıktan sonra tekrarlanır. Kasım ayının ilk Pazar günü saat 02:00'de gerçekleşen New York'taki standart saat değişikliğini göz önünde bulundurun. İlk olarak, 1:00 geçiyor. Saat saat 02:00'de standart saate geçmektedir, bu yüzden şimdi tekrar 1:00'de. Bu, 01:00 ile 02:00 arasındaki sürenin "tekrarlanacağı" ve etkili bir şekilde bir saat eklanacağı anlamına gelir.

bu local_time "ek" saat içinde bir süre belirtirse, bunun nasıl dönüştürüldüğü açık değildir. Dönüştürülen süre, saatin gerçekleştiği "ilk" zaman mı yoksa "ikinci" olarak mı ele alınmalıdır? Sabit listesi choose belirtilmemişse, bir ambiguous_local_time özel durum alırsınız.

Var olmayan dönüştürme hatası

Standart saatten gün ışığından yararlanma saatine dönüştürme sırasında farklı bir sorun ortaya çıkabilir. Standart saatten ilkbaharda yaz saati uygulamasına geçiş sırasında saatler bir saat ileri doğru ilerler. Atlanan saat kaybolur, bu nedenle saate bir saat eklemiş gibi görünse de, bir saat "ileri doğru" ilerleyerek, geçişi izleyen saat etkili bir şekilde kaldırılır.

Mart ayının ikinci Pazar günü saat 02:00'de gerçekleşen New York'ta yaz saati değişikliğini göz önünde bulundurun. Saat 02:00'de gün ışığından yararlanma saatine geçmektedir ve şimdi 03:00'da okunuyor. local_time Dönüştürülen saat 02:30 ise, örneğin, bu süre "kaldırılan" süre boyuncadır ve "yok" şeklindedir ve bir nonexistent_local_time özel durumla sonuçlanır.

Gereksinimler

Üst bilgi: <chrono> (C++20'den beri)

Ad alanı: std::chrono

Derleyici seçeneği:/std:c++latest gereklidir.

Ayrıca bkz.

to_sys
zoned_time Oluşturucu