Aracılığıyla paylaş


localtime_s, _localtime32_s, _localtime64_s

Bir zaman değeri dönüştürür ve yerel saat dilimini düzeltir.Bunlar sürümleridir localtime, _localtime32, _localtime64 açıklandığı gibi güvenlik geliştirmeleri ile crt güvenlik özellikleri.

errno_t localtime_s(
   struct tm* _tm,
   const time_t *time 
);
errno_t _localtime32_s(
   struct tm* _tm,
   const time32_t *time 
);
errno_t _localtime64_s(
   struct tm* _tm,
   const _time64_t *time 
);

Parametreler

  • _tm
    Doldurulacak zaman yapısına yönelik işaretçinin.

  • time
    Saklı zaman için işaretçi.

Dönüş Değeri

Başarılı olursa sıfır.Bir hata varsa dönüş değeri hata kodudur.Hata kodları Errno.h tanımlanır.Bu hataların listesi için bkz: errno.

Hata koşulları

_tm

time

Dönüş değeri

İçindeki değer_tm

Geçersiz parametre işleyiciyi çağırır.

NULL

herhangi bir

EINVAL

Modifiye edilmemiş

Evet

Değil NULL (noktaları için geçerli bellek)

NULL

EINVAL

Tüm alanlar -1 olarak ayarlayın.

Evet

Değil NULL (noktaları için geçerli bellek)

0'dan küçük veya büyük_MAX__TIME64_T

EINVAL

Tüm alanlar -1 olarak ayarlayın.

Hayyr

İlk iki hata koşulları durumunda geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre doğrulama.Yürütülmesine devam etmek için izin verilmişse, bu işlevler kümesi errno için EINVAL ve EINVAL.

Notlar

_localtime32_s İşlevi olarak depolanan bir süre dönüştürür bir time_t değer ve sonuç türü yapısında saklar tm.long Değeri timer geçen gece yarısından itibaren saniye temsil eder (00: 00), 1 Ocak 1970'den itibaren utc.Bu değer genellikle elde time işlevi.

_localtime32_sKullanıcı ilk kez genel ortam değişkenini ayarlar, yerel saat dilimini düzeltir TZ.Zaman TZ ayarlanır, üç diğer ortam değişkenlerini (_timezone, _daylight, ve _tzname) otomatik olarak ayarlanır.TZ Değişkeni ayarlanmamış, localtime32_s Denetim Masası'ndaki Tarih/Saat uygulamasında belirtilen saat dilimi bilgilerini kullanmayı dener.Bu bilgileri alınamıyor, Pasifik saat dilimini belirten, PST8PDT, varsayılan olarak kullanılır.Bkz: _tzset bu değişkenlerin bir açıklaması.TZMicrosoft uzantısı ve ANSI standart tanımının parçası olan localtime.

[!NOT]

Hedef ortam ışığından yürürlükte olup olmadığını belirlemek denemelisiniz.

_localtime64_s, kullanan __time64_t yapısı, 23: 59: 59 ile 31 Aralık 3000 Eşgüdümlü Evrensel Saat (utc) yukarı ifade tarihleri sağlarken _localtime32_s 03: 14: 07 19 Ocak 2038 utc aracılığıyla tarihleri temsil eder.

localtime_sdeğerlendiren bir satır içi işlevi _localtime64_s, ve time_t eşdeğeri olan __time64_t.Yorumlamak için derleyici zorlamak gerekirse time_t eski 32-bit olarak time_t, sizin tanımladığınız _USE_32BIT_TIME_T.Bunu neden olur localtime_s için değerlendirmek için _localtime32_s.Bu, uygulamanızı 19 Ocak 2038 sonra başarısız olabilir ve 64-bit platformlarda izin verilmez çünkü önerilmez.

Yapý türü alanlarının tm her biri, aşağıdaki değerler saklayan bir int.

  • tm_sec
    Saniye sonra dakika (0-59).

  • tm_min
    Saat dakika (0-59).

  • tm_hour
    Gece yarısından sonra saat (0-23).

  • tm_mday
    (1 – 31) Ayın günü.

  • tm_mon
    Ay (0 – 11; Ocak = 0).

  • tm_year
    Yıl (geçerli yıl 1900 eksi).

  • tm_wday
    Haftanın günü (0 – 6; Pazar = 0).

  • tm_yday
    Yılın günü (0 – 365; Ocak 1 = 0).

  • tm_isdst
    Gün ışığından yararlanma saatine etkinse, pozitif değer; 0 gün ışığından yararlanma saatine etkili değildir; gün ışığından yararlanma saatine durumu bilinmeyen ise negatif değer.TZ Ortam değişkeni ayarlanır, c çalışma zamanı kitaplığı kuralları Amerika Birleşik Devletleri için uygun gün ışığından yararlanma saati (dst) hesaplama gerçekleştirmek için varsayar.

Gereksinimler

Yordamı

Gerekli başlık

localtime_s

<time.h>

_localtime32_s

<time.h>

_localtime64_s

<time.h>

Daha fazla uyumluluk bilgileri için bkz: Uyumluluk giriş.

Ö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 );
}

Örnek Çıktı

Fri Apr 25 01:19:27 PM

.NET Framework Eşdeğeri

System::DateTime::ToLocalTime

Ayrıca bkz.

Başvuru

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