Aracılığıyla paylaş


local_info Yapı

saat dilimine dönüştürmenin sonucu local_time hakkında düşük düzeyli bir sys_timearabirim sağlar.

Sözdizimi

struct local_info;

Üyeler

İşlev Açıklama
result Dönüştürmenin sonucunu açıklayan bir kod.
first, second Dönüştürmenin sonucu.

Üye sabitleri

Veri Akışı Adı Değer Açıklama
unique 0 Dönüştürmenin sonucu benzersizdir.
nonexistent 1 öğesini dönüştürmek local_time için karşılık gelen sys_time bir değer yoktur.
ambiguous 2 Dönüştürmenin sonucu belirsizdir.

Üye olmayanlar

İşlev Açıklama
operator<< Akışa a local_info çıkışı.

result

'yi öğesine dönüştürmenin local_time sys_timesonucu.

int result;

Dönüş değeri

Sonuç aşağıdaki değerlerden biri olabilir:

  • uniquelocal_time: başarıyla öğesine sys_timedönüştürüldü.
  • nonexistent: ile eşlemesi local_time sys_timeyoktur.
  • ambiguous: Gün ışığından local_time yararlanma saati ile standart saat arasındaki geçiş sırasındaki topraklar iki sys_time değere dönüştürülebilir.

Açıklamalar

ve temel alınarak resultnasıl first second ayarlandığı hakkında bilgi için, hakkında secondfirstaşağıdaki bölüme bakın.

first, second

bir'i değerine dönüştürmenin local_time sys_timesonucunu sağlar.

sys_seconds begin;
sys_seconds end;

Dönüş değeri

first ve second aşağıdakilere göre result ayarlanır:

result first second
unique Dönüştürülen değerini local_time içerir sys_time sıfır başlatılan
nonexistent Şundan sys_info hemen önce biten bir local_time ' sys_info nin hemen ardından local_timebaşlayan bir.
ambiguous Hemen sys_info sonra biten bir local_time uygulamasından sys_info hemen önce başlayan bir local_time.

ambiguous sonuç kodu

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. Örnek için bkz ambiguous_local_time .

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 listesichoose, olması gereken zamanı belirtmek için belirtilmezse, olarak ayarlanması ambiguousbeklenir result ve first second öğesinin dönüştürülebileceği zamana local_time ilişkin iki seçeneği yansıtır.

nonexistent sonuç kodu

Standart saatten ilkbaharda gün ışığından yararlanma saatine geçiş sırasında, saatler temelde bir saat kaybeder. Bu kafa karıştırıcı olabilir çünkü yaz saati geçişi bir saat eklemek anlamına gelmiyor mu? Bir saat "ileri doğru" yayılarak, 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 bu nedenle kodun nonexistent olmasını bekleyebilirsinizresult. Örnek için bkz nonexistent_local_time .

Örnek: local_info

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    const auto& timeZoneDatabase = get_tzdb();
    const auto& currentZone = timeZoneDatabase.current_zone();

    local_time<system_clock::duration> lt = currentZone->to_local(system_clock::now());

    auto localInfo = currentZone->get_info(lt);

    std::cout << "local_time: " << lt << "\n";
    std::cout << localInfo << "\n";

    return 0;
}
local_time: 2021-09-08 15:37:57.6853963
result: unique, first: (begin: 2021-03-14 10:00:00, end: 2021-11-07 09:00:00, offset: -25200s, save: 60min, abbrev: PDT)

Gereksinimler

Üstbilgi: <chrono>

Ad alanı: std::chrono

Derleyici Seçeneği: /std:c++latest

<chrono>
ambiguous_local_time istisna
choose sabit listesi
file_clock sınıfı
high_resolution_clock
local_t Yapı
non_existent istisna
system_clock Yapı
tai_clock sınıfı
utc_clock sınıfı
Üst Bilgi Dosyaları Başvurusu