Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengambil representasi string karakter dari nama zona waktu atau nama zona waktu standar siang hari (DST).
Sintaks
errno_t _get_tzname(
size_t* pReturnValue,
char* timeZoneName,
size_t sizeInBytes,
int index
);
Parameter
pReturnValue
Panjang timeZoneName string termasuk NULL terminator.
timeZoneName
Alamat string karakter untuk representasi nama zona waktu atau nama zona waktu standar siang hari (DST), tergantung pada index.
sizeInBytes
Ukuran timeZoneName string karakter dalam byte.
index
index Salah satu dari dua nama zona waktu yang akan diambil.
index |
Isi dari timeZoneName |
timeZoneName nilai default |
|---|---|---|
| 0 | Nama zona waktu | "PST" |
| 1 | Nama zona waktu standar siang hari | "PDT" |
| > 1 atau < 0 | errnoAtur ke EINVAL |
tidak dimodifikasi |
Kecuali diperbarui secara eksplisit selama runtime, "PST" dikembalikan untuk zona waktu standar dan "PDT" untuk zona waktu standar siang hari. Untuk informasi selengkapnya, lihat Komentar.
String zona waktu tidak dijamin sama antara rilis OS. Nama zona waktu resmi dapat dan melakukan perubahan.
Nilai hasil
Nol jika berhasil, jika tidak, nilai errno jenis.
Jika adalah timeZoneName NULL, atau sizeInBytes nol atau kurang dari nol (tetapi tidak keduanya), handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi ini diatur errno ke EINVAL dan mengembalikan EINVAL.
Kondisi kesalahan
pReturnValue |
timeZoneName |
sizeInBytes |
index |
Nilai hasil | Isi dari timeZoneName |
|---|---|---|---|---|---|
| ukuran nama TZ | NULL |
0 | 0 atau 1 | 0 | tidak dimodifikasi |
| ukuran nama TZ | any | > 0 | 0 atau 1 | 0 | Nama TZ |
| tidak dimodifikasi | NULL |
> 0 | any | EINVAL |
tidak dimodifikasi |
| tidak dimodifikasi | any | zero | any | EINVAL |
tidak dimodifikasi |
| tidak dimodifikasi | any | > 0 | > 1 | EINVAL |
tidak dimodifikasi |
Keterangan
Fungsi ini _get_tzname mengambil representasi string karakter dari nama zona waktu saat ini atau nama zona waktu standar siang hari (DST) ke alamat timeZoneName tergantung pada index nilai, bersama dengan ukuran string di pReturnValue. Jika timeZoneName adalah NULL dan sizeInBytes nol, ukuran string dalam byte yang diperlukan untuk menahan zona waktu yang ditentukan, dan mengakhiri NULL, dikembalikan dalam pReturnValue.
Nilai index harus 0 untuk zona waktu standar atau 1 untuk zona waktu standar siang hari; nilai lain memiliki hasil yang tidak ditentukan.
Secara default, "PST" dikembalikan untuk zona waktu standar dan "PDT" untuk zona waktu standar siang hari. Nama zona waktu yang sebenarnya diperbarui saat pertama kali diperlukan oleh fungsi yang memerlukan informasi zona waktu, seperti strftime, , ftime, ftime_smktime, localtime, dan lainnya. Jika fungsi yang tidak memerlukan informasi zona waktu tidak dipanggil sebelum memanggil _get_tzname, nilai default dikembalikan kecuali Anda terlebih dahulu memperbaruinya secara eksplisit menggunakan salah satu fungsi yang disebutkan, atau dengan panggilan ke tzset. Selain itu, jika TZ variabel lingkungan diatur, itu lebih diutamakan daripada nama zona waktu yang dilaporkan oleh OS. Bahkan dalam hal ini, salah satu fungsi yang disebutkan di atas harus dipanggil sebelum _get_tzname dipanggil atau nilai zona waktu default akan dikembalikan. Untuk informasi selengkapnya tentang TZ variabel lingkungan dan CRT, lihat _tzset.
Peringatan
String zona waktu tidak dijamin sama antara rilis OS. Nama zona waktu resmi dapat dan melakukan perubahan.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Contoh
Sampel ini memanggil _get_tzname untuk mendapatkan ukuran buffer yang diperlukan untuk menampilkan nama zona waktu standar Daylight saat ini, mengalokasikan buffer ukuran tersebut, memanggil _get_tzname lagi untuk memuat nama di buffer, dan mencetaknya ke konsol.
Ini juga memanggil _tzset() untuk menyebabkan OS memperbarui informasi zona waktu sebelum memanggil _get_tzname(). Jika tidak, nilai default digunakan.
// crt_get_tzname.c
// Compile by using: cl /W4 crt_get_tzname.c
#include <stdio.h>
#include <time.h>
#include <malloc.h>
enum TZindex {
STD,
DST
};
int main()
{
size_t tznameSize = 0;
char * tznameBuffer = NULL;
_tzset(); // Update the time zone information
// Get the size of buffer required to hold DST time zone name
if (_get_tzname(&tznameSize, NULL, 0, DST))
{
return 1; // Return an error value if it failed
}
// Allocate a buffer for the name
if (NULL == (tznameBuffer = (char *)(malloc(tznameSize))))
{
return 2; // Return an error value if it failed
}
// Load the name in the buffer
if (_get_tzname(&tznameSize, tznameBuffer, tznameSize, DST))
{
return 3; // Return an error value if it failed
}
printf_s("The current Daylight standard time zone name is %s.\n", tznameBuffer);
return 0;
}
Output
The current Daylight standard time zone name is Pacific Daylight Time.
Persyaratan
| Rutin | Header yang diperlukan |
|---|---|
_get_tzname |
<time.h> |
Untuk informasi selengkapnya, lihat Kompatibilitas.
Lihat juga
Manajemen waktu
errno, _doserrno, _sys_errlist, dan _sys_nerr
_get_daylight
_get_dstbias
_get_timezone