localtime_s
, _localtime32_s
, _localtime64_s
Bir time_t
saat değerini bir tm
yapıya dönüştürür ve yerel saat dilimini düzelter. Bu işlevler, CRT'deki Güvenlik özellikleri bölümünde açıklandığı gibi güvenlik geliştirmeleri içeren , _localtime32
_localtime64
sürümleridir.localtime
Sözdizimi
errno_t localtime_s(
struct tm* const tmDest,
time_t const* const sourceTime
);
errno_t _localtime32_s(
struct tm* tmDest,
__time32_t const* sourceTime
);
errno_t _localtime64_s(
struct tm* tmDest,
__time64_t const* sourceTime
);
Parametreler
tmDest
Doldurulacak zaman yapısının işaretçisi.
sourceTime
Depolanan sürenin işaretçisi.
Dönüş değeri
Başarılı olursa sıfır. Bir hata varsa dönüş değeri bir hata kodudur. Hata kodları içinde Errno.h
tanımlanır. Bu hataların listesi için bkz errno
. .
Hata koşulları
tmDest |
sourceTime |
Dönüş değeri | içindeki değer tmDest |
Geçersiz parametre işleyicisini çağırır |
---|---|---|---|---|
NULL |
herhangi bir | EINVAL |
Değiştirilmedi | Yes |
Değil NULL (geçerli belleğe işaret eden) |
NULL |
EINVAL |
Tüm alanlar -1 olarak ayarlandı | Yes |
Değil NULL (geçerli belleğe işaret eden) |
0'dan küçük veya büyüktür _MAX__TIME64_T |
EINVAL |
Tüm alanlar -1 olarak ayarlandı | Hayır |
İlk iki hata koşulu, Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisini çağırır. Yürütmenin devam etmesi için izin verilirse, bu işlevler olarak EINVAL
ayarlanır errno
ve döndürürEINVAL
.
Açıklamalar
işlevi, localtime_s
değer olarak time_t
depolanan bir zamanı dönüştürür ve sonucu türünde tm
bir yapıda depolar. DeğersourceTime
, time_t
gece yarısından (00:00:00), 1 Ocak 1970 UTC'den bu yana geçen saniyeleri temsil eder. Bu değer genellikle işlevinden time
alınır.
localtime_s
kullanıcı ilk olarak genel ortam değişkenini TZ
ayarlarsa yerel saat dilimini düzelter. Ayarlandığında TZ
, diğer üç ortam değişkeni de (_timezone
, _daylight
ve _tzname
) otomatik olarak ayarlanır. TZ
Değişken ayarlı değilse, localtime_s
Denetim Masası'daki Tarih/Saat uygulamasında belirtilen saat dilimi bilgilerini kullanmayı dener. Bu bilgiler alınamazsa, pasifik saat dilimini gösteren PST8PDT varsayılan olarak kullanılır. Bu değişkenlerin açıklaması için bkz _tzset
. TZ
bir Microsoft uzantısıdır ve ANSI standart tanımının localtime
bir parçası değildir.
Not
Hedef ortam, gün ışığından yararlanma saatinin etkin olup olmadığını belirlemeye çalışmalıdır.
_localtime64_s
yapısını kullanan , tarihlerin __time64_t
23:59:59, 18 Ocak 3001 ile eşgüdümlü evrensel saat (UTC) arasında ifade edilmesini sağlarken _localtime32_s
, 18 Ocak 2038, UTC ile 23:59:59 tarihleri temsil eder.
localtime_s
, olarak değerlendirilen _localtime64_s
ve time_t
ile eşdeğer __time64_t
olan satır içi bir işlevdir. Derleyiciyi eski 32 bit olarak yorumlamaya time_t
zorlamanız gerekiyorsa, değerinin değerlendirmesine _localtime32_s
neden localtime_s
olan öğesini tanımlayabilirsiniz_USE_32BIT_TIME_T
.time_t
Uygulamanız 18 Ocak 2038'de başarısız olabileceği ve 64 bit platformlarda izin verilmediğinden önermiyoruz _USE_32BIT_TIME_T
.
Yapı türünün tm
alanları, her biri bir int
olan aşağıdaki değerleri depolar.
Alan | Açıklama |
---|---|
tm_sec |
Dakika sonra saniye (0 - 59). |
tm_min |
Saat sonra dakika (0 - 59). |
tm_hour |
Gece yarısından itibaren saatler (0 - 23). |
tm_mday |
Ayın günü (1 - 31). |
tm_mon |
Ay (0 - 11; Ocak = 0). |
tm_year |
Yıl (geçerli yıl eksi 1900). |
tm_wday |
Haftanın günü (0 - 6; Pazar = 0). |
tm_yday |
Yılın günü (0 - 365; 1 Ocak = 0). |
tm_isdst |
Gün ışığından yararlanma saati etkinse pozitif değer; Gün ışığından yararlanma saati etkin değilse 0; gün ışığından yararlanma saatinin durumu bilinmiyorsa negatif değer. |
TZ
Ortam değişkeni ayarlanırsa, C çalışma zamanı kitaplığı, gün ışığından yararlanma saati (DST) hesaplamasını uygulamak için Birleşik Devletler uygun kuralları varsayar.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Gereksinimler
Yordam | Gerekli C üst bilgisi | Gerekli C++ üst bilgisi |
---|---|---|
localtime_s , _localtime32_s , _localtime64_s |
<time.h> |
<ctime> veya <time.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// crt_localtime_s.c
// This program uses _time64 to get the current time
// and then uses _localtime64_s() to convert this time to a structure
// representing the local time. The program converts the result
// from a 24-hour clock to a 12-hour clock and determines the
// proper extension (AM or PM).
#include <stdio.h>
#include <string.h>
#include <time.h>
int main( void )
{
struct tm newtime;
char am_pm[] = "AM";
__time64_t long_time;
char timebuf[26];
errno_t err;
// Get time as 64-bit integer.
_time64( &long_time );
// Convert to local time.
err = _localtime64_s( &newtime, &long_time );
if (err)
{
printf("Invalid argument to _localtime64_s.");
exit(1);
}
if( newtime.tm_hour > 12 ) // Set up extension.
strcpy_s( am_pm, sizeof(am_pm), "PM" );
if( newtime.tm_hour > 12 ) // Convert from 24-hour
newtime.tm_hour -= 12; // to 12-hour clock.
if( newtime.tm_hour == 0 ) // Set hour to 12 if midnight.
newtime.tm_hour = 12;
// Convert to an ASCII representation.
err = asctime_s(timebuf, 26, &newtime);
if (err)
{
printf("Invalid argument to asctime_s.");
exit(1);
}
printf( "%.19s %s\n", timebuf, am_pm );
}
Fri Apr 25 01:19:27 PM
Ayrıca bkz.
Zaman yönetimi
asctime_s
, _wasctime_s
ctime
, _ctime32
, _ctime64
, , _wctime
, _wctime32
, _wctime64
_ftime
, _ftime32
, _ftime64
gmtime_s
, _gmtime32_s
, _gmtime64_s
localtime
, _localtime32
, _localtime64
time
, _time32
, _time64
_tzset