Aracılığıyla paylaş


utc_clock sınıfı

Zaman zaman Greenwich Saati (GMT) veya Zulu saati olarak da adlandırılan Eşgüdümlü Evrensel Saat (UTC) saati. Yerel saat, saat diliminize bağlı olarak UTC saatinden ayarlanır.

Sözdizimi

class utc_clock; // C++20

Açıklamalar

Bu saat, 1 Ocak 1970 Perşembe günü saat 00:00:00 UTC'den bu yana geçen süreyi ölçer. Bu saat artık saniyeleri hesaplar ve dünyanın dört bir yanındaki sivil zamanın temelini oluşturur.

UTC saati oranı, saati izlemek için atomik saatler kullanan Uluslararası Atomik Saati (TAI) temel alır. Ancak artık saniye, UTC saati ile UT1 (güneş saati) arasındaki farkı +- 0,9 saniye içinde tutmak için zaman zaman UTC saatine eklenir.

Atomik saatler tarafından tutulan zaman ile dünyanın dönüşünü takip ederek tutulan süre arasında bir tutarsızlık vardır. Bunun nedeni, dünyanın dönüş hızının düzensiz olması ve genel olarak her 1,5 yılda bir yaklaşık bir saniye yavaşlamadır (bazen dünyanın dönüş hızı artsa da). Artık saniye ayarı UTC izleme süresini bir günün ortalama uzunluğunun bir saniye içinde tutar.

Bu yazıdan itibaren artık saniye ekleme uygulaması 1972'de başladığından beri 27 artık saniye eklenmiştir. Uluslararası Toprak Döndürme ve Referans Sistemleri Hizmeti (IERS), artık saniyenin ne zaman ekleneceğini belirler. Artık saniye ekleme işlemine "artık saniye ekleme" denir. Artık saniye eklendiğinde, saat gece yarısına yaklaştığında 23 saat 59 dakika 59 saniyeden 23 saat 59 dakika 60 saniyeye (eklenen artık saniye) ve ardından 0 saat 0 dakika 0 saniyeye (gece yarısı) kadar devam eder. Geçmişte artık saniyeler 30 Haziran veya 31 Aralık'ta eklenmiştir.

UTC saati, tanıma göre TAI'nin (atomik saat) 10 saniye gerisinde başlar. 1972'de TAI süresine, bu noktada biriken artık saniyelere uyum sağlamak için 10 saniye eklendi. O zamandan bu yana 27 artık saniye daha eklendikten sonra UTC saati şu anda TAI (atomik saat) süresinin 37 saniye gerisindedir.

Üyeler

Veri Akışı Adı Açıklama
from_sys Duruk. a'yi sys_time öğesine utc_timedönüştürür.
now Duruk. Geçerli saati döndürür.
to_sys Duruk. a'yi utc_time öğesine sys_timedönüştürür.

Üye olmayanlar

Veri Akışı Adı Açıklama
from_stream Belirtilen biçimi kullanarak verilen akıştan bir utc_time ayrıştırın.
get_leap_second_info Sağlanan saatin artık saniye eklendiği zamanı belirtip belirtmediğini belirten bir leap_second_info alır. Ayrıca 1 Ocak 1970 ile belirtilen süre arasındaki tüm artık saniyelerin toplamını içerir.
operator<< Verilen akışa a utc_time çıkışı.

Kolaylık türü diğer adları

Veri Akışı Adı Açıklama
utc_clock::duration Microsoft'un uygulamasında bu, için duration<system_clock::rep, system_clock::period>bir eş anlamlıdır. 100 nanosaniyelik birimlerle ölçülen süreyi temsil eder.
utc_clock::period Microsoft'un uygulaması bunu için system_clock::periodbir eş anlamlı olarak tanımlar. Süredeki her bir değer çizgisi arasındaki süreyi saniye cinsinden (100 nanosaniye) temsil eder.
utc_clock::rep Bu saatin utc_clock::durationintegral birimlerini temsil etmek için kullanılan türü (long long) için bir eş anlamlı.
utc_clock::time_point için time_point<utc_clock>bir eş anlamlı. Bu saat için bir time_point temsil etmek için kullanılır.

İlgili

Veri Akışı Adı Açıklama
utc_seconds için bir eş anlamlı using utc_seconds = utc_time<seconds>;
utc_time için bir eş anlamlısı template<class Duration> using utc_time = time_point<utc_clock, Duration>;, için bir time_point utc_clocktemsil eder. Süreyi belirtirsiniz. Tanımlandığı yer: std::chrono

Genel Sabitler

Veri Akışı Adı Açıklama
[utc_clock::is_steady constant](#is_steady_constant) Saat türünün sabit olup olmadığını gösterir. Değeri şeklindedir false.

Gereksinimler

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

Ad alanı: std::chrono

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

from_sys

bir sys_time utc_timeöğesine dönüştüren statik yöntem.

template<class Duration>
static utc_time<common_type_t<Duration, seconds>>
from_sys(const sys_time<Duration>& t);

Parametreler

t
sys_time Dönüştürülecek.

Dönüş değeri

utc_time değerine en yakın zamana ayarlanmış bir sys_time tküme. Doğrudan eşleme yoksa, artık saniye ekleme işlemi sırasında time_point ve artık saniyenin eklenmesinden önceki son temsil edilebilir değeri sys_time döndürülür.

to_sys

bir utc_time sys_timeöğesine dönüştüren statik yöntem.

template<class Duration>
static sys_time<common_type_t<Duration, seconds>>
to_sys(const utc_time<Duration>& t);

Parametreler

t
utc_time Dönüştürülecek.

Dönüş Değeri

olarak sys_time zaman tiçindeki eşdeğer noktaya ayarlanır. Doğrudan eşleme yoksa, artık saniye eklendiğinde belirli bir noktayı temsil eden t bir artık saniye eklemeden önceki son temsil edilebilir değerdir. Artık saniye ekleme işlemine "artık saniye ekleme" denir. Artık saniye eklendiğinde, gece yarısına yaklaştığı zaman 23 saat 59 dakika 59 saniye ile 23 saat 59 dakika 60 saniye (eklenen artık saniye) ve ardından 0 saat 0 dakika 0 saniyeye (gece yarısı) ilerler. Geçmişte artık saniyeler 30 Haziran veya 31 Aralık'ta eklenmiştir.

is_steady

Saat türünün sabit olup olmadığını belirten statik değer. Microsoft'un uygulamasında: is_steady_constant false. utc_clock sabit olmadığından, bu saati güvenilir bir şekilde kullanarak bir olaydan önceki süreyi, bir olaydan sonraki süreyi alamaz ve bu süre boyunca ayarlanabileceği için olayın süresini almak için bu saati çıkaramazsınız.

static const bool is_steady = false;

now

Geçerli UTC saatini döndüren statik yöntem. Döndürülen süre artık saniyeleri içerir.

static time_point now() noexcept;

Dönüş Değeri

time_point Geçerli saati temsil eden nesne. Döndürülen zaman noktası etkili bir şekilde from_sys(system_clock::now())olur.

Ayrıca bkz.

<chrono>
file_clock class
gps_clock class
high_resolution_clock
local_t Yapı
steady_clock Yapı
system_clock Yapı
tai_clock sınıfı
Üst Bilgi Dosyaları Başvurusu