Aracılığıyla paylaş


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.htanı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 Evet
Değil NULL (geçerli belleğe işaret eden) NULL EINVAL Tüm alanlar -1 olarak ayarlandı Evet
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 tmbir 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 TZayarlarsa yerel saat dilimini düzelter. Ayarlandığında TZ , diğer üç ortam değişkeni de (_timezone, _daylightve _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 localtimebir parçası değildir.

Dekont

Hedef ortam, gün ışığından yararlanma saatinin etkin olup olmadığını belirlemeye çalışmalıdır.

_localtime64_syapı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_sve time_t ile eşdeğer __time64_tolan satır içi bir işlevdir. Derleyiciyi eski 32 bit olarak yorumlamaya time_t zorlamanız gerekiyorsa, değerinin değerlendirmesine _localtime32_sneden 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 intolan aşağıdaki değerleri depolar.

Alan Tanım
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