_tzset
Zaman ortam değişkenlerini ayarlar.
Önemli |
---|
Bu API, Windows Çalışma Zamanı'nda yürütülen uygulamalarda kullanılamaz.Daha fazla bilgi için bkz /ZW ile desteklenmeyen CRT işlevleri. |
void _tzset( void );
Notlar
_tzset işlevi, TZ ortam değişkeninin geçerli ayarını üç küresel değişkene: _daylight, _timezone ve _tzname değişkenlerine değer atamak için kullanır.Bu değişkenler, eşgüdümlü evrensel saatten (UTC) yerel saate düzeltmeler yapmak için _ftime ve localtime tarafından ve UTC'yi sistem saatinden hesaplamak için time işlevi tarafından kullanılır.TZ ortam değişkenini ayarlamak için aşağıdaki sözdizimini kullanın:
setTZ=tzn[+ | –]hh[:mm[:ss] ][dzn]
tzn
Üç harfli saat dilim adı, PDT gibi.Yerel saatten UTC'ye doğru sapmayı belirtmeniz gerekir.hh
UTC ve yerel saat arasındaki saat farkı.İşaret (+) pozitif değerler için isteğe bağlıdır.mm
Dakika.İki nokta üst üste (:) ile hh 'den ayrılmış öğe.ss
Saniyeler.İki nokta üst üste ile mm 'den ayrılmış (:) öğesi.dzn
Üç harfli yaz saati dilimi, PDT gibi.Gün ışığından yararlanma saati yerleşim yerinde asla geçerli değilse, dzn için TZ öğesini bir değer olmadan ayarların.C çalışma zamanı kitaplığı, gün ışığından yararlanma saatinin (DST) hesaplanması için ABD kurallarını varsayar.
[!NOT]
Saat farkının işaretini hesaplarken dikkatli olun.Saat farkı UTC yerel saatinden uzakta olduğu için (tersi yerine), işareti sezgisel olarak beklediğinizin zıttı olabilir.UTC'nin önündeki saat dilimleri için, saat farkı negatiftir; UTC'nin gerisindekiler için fark pozitiftir.
Örneğin, TZ ortam değişkenini Almanya'daki geçerli saat dilimine karşılık gelecek şekilde ayarlamak için, aşağıdakileri komut satırına yazın:
set TZ=GST-1GDT
Bu komut, Alman standart saatini göstermek için GST kullanır, UTC'nin, Almanya'dan bir saat geri olduğunu varsayar (başka bir deyişle, Almanya, UTC'nin bir saat önünde), ve Almanya'nın yaz saati uygulamasını gözlediğini varsayar.
TZ ayarlanmamışsa, _tzset işletim sisteminin belirttiği zaman dilimini kullanmaya çalışır.Windows işletim sisteminde, Denetim Masası'ndaki Tarih/Saat uygulamasında bu bilgiler belirtilir._tzset bu bilgiyi elde edemezse, varsayılan olarak, Pasifik Saat dilimini gösteren PST8PDT'yi kullanır.
TZ ortamı değişken değerine göre, _tzset çağırıldığında aşağıdaki değerler _daylight, _timezone ve _tzname genel değişkenlerine atanır:
Genel değişken |
Tanımlama |
Varsayılan değer |
---|---|---|
_daylight |
Gün ışığından yararlanma bölgesi TZ ayarında belirtilmişse sıfır dışı değer, belirtilmemişse 0. |
1 |
_timezone |
Yerel saat ve UTC arasındaki saniye farkı. |
28800 (28800 saniye 8 saate eşittir) |
_tzname[0] |
TZ ortam değişkeninden saat dilimi adının dize değeri; TZ ayarlanmamışsa boştur. |
PST |
_tzname[1] |
Gün ışığından yararlanma saat diliminin dize değeri; gün ışığından yararlanma saat dilimi TZ ortam değişkeninden çıkarılırsa boştur. |
PDT |
Önceki tabloda _daylight ve _tzname dizisi için gösterilen varsayılan değerler "PST8PDT"'ye karşılık gelir. DST bölgesi TZ çevre değişkeninden atlanırsa _daylight değeri 0 olur, _ftime, gmtime ve localtime işlevleri de kendi DST bayrakları için 0 değerini döndürür.
Gereksinimler
Yordam |
Gerekli başlık |
---|---|
_tzset |
<time.h> |
Daha fazla bilgi için bkz. sk54f3f5(v=vs.120).md.
Örnek
// crt_tzset.cpp
// This program uses _tzset to set the global variables
// named _daylight, _timezone, and _tzname. Since TZ is
// not being explicitly set, it uses the system time.
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
_tzset();
int daylight;
_get_daylight( &daylight );
printf( "_daylight = %d\n", daylight );
long timezone;
_get_timezone( &timezone );
printf( "_timezone = %ld\n", timezone );
size_t s;
char tzname[100];
_get_tzname( &s, tzname, sizeof(tzname), 0 );
printf( "_tzname[0] = %s\n", tzname );
exit( 0 );
}
.NET Framework Eşdeğeri
Uygulanamaz. Standart C işlevini çağırmak için PInvoke kullanın. Daha fazla bilgi için bkz. Platform Çağırma Örnekleri.