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_t
kullanarak_time32
).23:59:59, 31 Aralık 3000, UTC 'dan sonra (ve
__time64_t
kullanarak_time64
).
_localtime64
yapı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 _localtime64
ve time_t
ile eşdeğer __time64_t
olan satır içi bir işlevdir. Derleyiciyi eski 32 bit time_t
olarak 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 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.
Açıklamalar
işlevi, localtime
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
, 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
, mkgmtime
ve 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 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
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 localtime
bir 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 EINVAL
ayarlanı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