local_info
Yapı
saat dilimine dönüştürmenin sonucu local_time
hakkında düşük düzeyli bir sys_time
arabirim 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_time
sonucu.
int result;
Dönüş değeri
Sonuç aşağıdaki değerlerden biri olabilir:
unique
local_time
: başarıyla öğesinesys_time
dönüştürüldü.nonexistent
: ile eşlemesilocal_time
sys_time
yoktur.ambiguous
: Gün ışığındanlocal_time
yararlanma saati ile standart saat arasındaki geçiş sırasındaki topraklar ikisys_time
değere dönüştürülebilir.
Açıklamalar
ve temel alınarak result
nasıl first
second
ayarlandığı hakkında bilgi için, hakkında second
first
aşağıdaki bölüme bakın.
first
, second
bir'i değerine dönüştürmenin local_time
sys_time
sonucunu 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_time baş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ı ambiguous
beklenir 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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin