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'deki 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
Ayrıca bkz.
Başvuru
ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
gmtime_s, _gmtime32_s, _gmtime64_s