Aracılığıyla paylaş


localtime, _localtime32, _localtime64

Bir saat değerini dönüştürür ve yerel saat dilimini düzelter. Bu işlevlerin daha güvenli sürümleri mevcuttur; bkz. localtime_s, _localtime32_s, _localtime64_s.

Sözdizimi

struct tm *localtime( const time_t *sourceTime );
struct tm *_localtime32( const __time32_t *sourceTime );
struct tm *_localtime64( const __time64_t *sourceTime );

Parametreler

sourceTime
Depolanan süre işaretçisi.

Dönüş değeri

Yapı sonucuna bir işaretçi döndürün veya NULL işleve geçirilen tarih şöyleyse:

  • 1 Ocak 1970 gece yarısından önce.

  • 03:14:07' dan sonra, 19 Ocak 2038, UTC (ve time32_tkullanarak_time32).

  • 23:59:59, 31 Aralık 3000, UTC 'dan sonra (ve __time64_tkullanarak_time64).

_localtime64yapısını kullanan , tarihlerin __time64_t 23:59:59, 31 Aralık 3000 ile eşgüdümlü evrensel saat (UTC) arasında ifade edilmesini sağlarken _localtime32 , 18 Ocak 2038, UTC ile 23:59:59 tarihleri temsil eder.

localtime , olarak değerlendirilen _localtime64ve time_t ile eşdeğer __time64_tolan satır içi bir işlevdir. Derleyiciyi eski 32 bit time_tolarak yorumlamaya time_t zorlamanız gerekiyorsa tanımlayabilirsiniz_USE_32BIT_TIME_T. _USE_32BIT_TIME_T değerinin olarak değerlendirilmesine neden olur localtime _localtime32. 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 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.

Açıklamalar

işlevi, localtime değer olarak time_t depolanan bir zamanı dönüştürür ve sonucu türünde tmbir yapıda depolar. DeğersourceTime, long 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.

hem 32 bit hem de 64 bit sürümleri gmtime, mktime, mkgmtimeve localtime tüm dönüştürme için iş parçacığı başına tek tm bir yapı kullanır. Bu yordamlardan birine yapılan her çağrı, önceki çağrının sonucunu yok eder.

localtime 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 Denetim Masası'daki Tarih/Saat uygulamasında belirtilen saat dilimi bilgilerini kullanmayı dener. Bu bilgiler alınamıyorsa, 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.

Not

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

Bu işlevler parametrelerini doğrular. Boş bir işaretçiyse sourceTime veya değer negatifsesourceTime, bu işlevler Parametre doğrulama bölümünde açıklandığı gibi geçersiz bir parametre işleyicisi çağırır. Yürütmenin devam etmesi için izin verilirse, işlevler geri döner NULL ve olarak EINVALayarlanırerrno.

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, _localtime32, _localtime64 <time.h> <ctime> veya <time.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

// crt_localtime.cpp
// compile with: /W3
// This program uses _time64 to get the current time
// and then uses localtime64() 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;

    _time64( &long_time );             // Get time as 64-bit integer.
                                       // Convert to local time.
    newtime = _localtime64( &long_time ); // C4996
    // Note: _localtime64 deprecated; consider _localetime64_s

    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;

    char buff[30];
    asctime_s( buff, sizeof(buff), newtime );
    printf( "%.19s %s\n", buff, am_pm );
}
Tue Feb 12 10:05:58 AM

Ayrıca bkz.

Zaman yönetimi
asctime, _wasctime
ctime, _ctime32, _ctime64, , _wctime, _wctime32, _wctime64
_ftime, _ftime32, _ftime64
gmtime, _gmtime32, _gmtime64
localtime_s, _localtime32_s, _localtime64_s
time, _time32, _time64
_tzset