Bagikan melalui


_tzset

Mengatur variabel lingkungan waktu.

Penting

API ini tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime. Untuk informasi selengkapnya, lihat Fungsi CRT yang tidak didukung di aplikasi Platform Windows Universal.

Sintaks

void _tzset( void );

Keterangan

Fungsi ini _tzset menggunakan pengaturan variabel TZ lingkungan saat ini untuk menetapkan nilai ke tiga variabel global: _daylight, , _timezonedan _tzname. Variabel ini digunakan oleh _ftime fungsi dan localtime untuk membuat koreksi dari waktu universal terkoordinasi (UTC) ke waktu lokal, dan oleh time fungsi untuk menghitung UTC dari waktu sistem. Gunakan sintaks berikut untuk mengatur TZ variabel lingkungan:

set TZ=tzn [+|-]hh[:mm[:ss] ][dzn]

tzn
Nama zona waktu tiga huruf, seperti PST. Anda harus menentukan offset yang benar dari waktu lokal ke UTC.

hh
Perbedaan jam antara UTC dan waktu lokal. Tanda tangani (+) opsional untuk nilai positif.

mm
Menit. Dipisahkan dari hh titik dua (:).

ss
Detik. Dipisahkan dari mm titik dua (:).

dzn
Zona waktu musim panas tiga huruf seperti PDT. Jika waktu musim panas tidak pernah berlaku di lokalitas, atur TZ tanpa nilai untuk dzn. Pustaka run-time C mengasumsikan aturan Amerika Serikat untuk menerapkan perhitungan waktu musim panas (DST).

Catatan

Berhati-hatilah dalam menghitung tanda perbedaan waktu. Karena perbedaan waktu adalah offset dari waktu lokal ke UTC (bukan sebaliknya), tandanya mungkin berlawanan dengan apa yang mungkin Anda harapkan secara intuitif. Untuk zona waktu di depan UTC, perbedaan waktunya negatif; bagi mereka yang berada di belakang UTC, perbedaannya adalah positif.

Misalnya, untuk mengatur TZ variabel lingkungan agar sesuai dengan zona waktu saat ini di Jerman, masukkan perintah ini pada baris perintah:

set TZ=GST-1GDT

Perintah ini menggunakan GST untuk menunjukkan waktu standar Jerman. Ini mengasumsikan bahwa UTC adalah satu jam di belakang Jerman (atau dengan kata lain, bahwa Jerman satu jam lebih awal dari UTC). Dan, diasumsikan bahwa Jerman mengamati waktu musim panas.

TZ Jika nilai tidak diatur, _tzset upaya untuk menggunakan informasi zona waktu yang ditentukan oleh sistem operasi. Dalam sistem operasi Windows, informasi ini ditentukan dalam aplikasi Tanggal/Waktu di Panel Kontrol. Jika _tzset tidak dapat memperoleh informasi ini, informasi ini menggunakan PST8PDT secara default, yang menandakan zona Waktu Pasifik.

Berdasarkan TZ nilai variabel lingkungan, nilai berikut ditetapkan ke variabel _daylightglobal , , _timezonedan _tzname kapan _tzset dipanggil:

Variabel global Deskripsi Nilai default
_daylight Nilai bukan nol jika zona waktu musim panas ditentukan dalam TZ pengaturan; jika tidak, 0. 1
_timezone Perbedaan dalam detik antara waktu lokal dan UTC. 28800 (28.800 detik sama dengan 8 jam)
_tzname[0] Nilai string nama zona waktu dari TZ variabel lingkungan; kosong jika TZ belum ditetapkan. PST
_tzname[1] Nilai string zona daylight-saving-time; kosong jika zona waktu musim panas dihilangkan dari TZ variabel lingkungan. PDT

Nilai default yang diperlihatkan dalam tabel sebelumnya untuk _daylight dan _tzname array sesuai dengan "PST8PDT." Jika zona DST dihilangkan dari TZ variabel lingkungan, nilainya _daylight adalah 0 dan _ftimefungsi , gmtime, dan localtime mengembalikan 0 untuk bendera DST mereka.

Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.

Persyaratan

Rutin Header yang diperlukan
_tzset <time.h>

Fungsi _tzset ini khusus Untuk Microsoft. Untuk informasi selengkapnya, lihat Kompatibilitas.

Contoh

// 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 );
}
_daylight = 1
_timezone = 28800
_tzname[0] = Pacific Standard Time

Baca juga

Manajemen waktu
asctime, _wasctime
_ftime, _ftime32, _ftime64
gmtime, _gmtime32, _gmtime64
localtime, _localtime32, _localtime64
time, _time32, _time64
_utime, _utime32, _utime64, _wutime, _wutime32, _wutime64