Udostępnij za pośrednictwem


ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

Konwertowanie wartości czasu na ciąg oraz dostosować ustawienia strefy czasu lokalnego.Są to wersje ctime, _ctime64, _wctime, _wctime64 z ulepszeń zabezpieczeń, zgodnie z opisem w Funkcje zabezpieczeń w CRT.

errno_t ctime_s( 
   char* buffer,
   size_t numberOfElements,
   const time_t *time 
);
errno_t _ctime32_s( 
   char* buffer,
   size_t numberOfElements,
   const __time32_t *time 
);
errno_t _ctime64_s( 
   char* buffer,
   size_t numberOfElements,
   const __time64_t *time )
;
errno_t _wctime_s( 
   wchar_t* buffer,
   size_t numberOfElements,
   const time_t *time 
);
errno_t _wctime32_s( 
   wchar_t* buffer,
   size_t numberOfElements,
   const __time32_t *time 
);
errno_t _wctime64_s( 
   wchar_t* buffer,
   size_t numberOfElements,
   const __time64_t *time 
);
template <size_t size>
errno_t _ctime32_s( 
   char (&buffer)[size],
   const __time32_t *time 
); // C++ only
template <size_t size>
errno_t _ctime64_s( 
   char (&buffer)[size],
   const __time64_t *time
); // C++ only
template <size_t size>
errno_t _wctime32_s( 
   wchar_t (&buffer)[size],
   const __time32_t *time 
); // C++ only
template <size_t size>
errno_t _wctime64_s( 
   wchar_t (&buffer)[size],
   const __time64_t *time 
); // C++ only

Parametry

  • [Brak] buffer
    Musi być wystarczająco duża, aby pomieścić 26 znaków.Wskaźnik do wyniku ciąg znaków, lub NULL jeżeli:

    • timereprezentuje daty wcześniejszej od północy 1 stycznia 1970 roku UTC.

    • Jeśli używasz _ctime32_s lub _wctime32_s i time reprezentuje datę po 03:14:07 19 stycznia 2038.

    • Jeśli używasz _ctime64_s lub _wctime64_s i time reprezentuje datę po 23:59:59, 31 grudnia 3000 UTC.

    • Jeśli używasz _ctime_s lub _wctime_s, funkcje te są otoki do poprzedniej funkcji.Zobacz sekcję Uwagi.

  • [w] numberOfElements
    Rozmiar buforu.

  • [w] time
    Wskaźnik czasu przechowywaną.

Wartość zwracana

0, jeśli kończy się pomyślnie.W przypadku awarii z powodu nieprawidłowego parametru, obsługi nieprawidłowy parametr jest wywoływany, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może być kontynuowana, zwracany jest kod błędu.Kody błędów są zdefiniowane w numer błędu.H; Aby uzyskać listę tych błędów, zobacz errno.W poniższej tabeli przedstawiono faktyczne kody błędów generowane dla każdego warunku błędu.

Warunki błędów

buffer

numberOfElements

time

Zwrot

Wartość wbuffer

NULL

jakakolwiek

jakakolwiek

EINVAL

Nie zmodyfikowano

Nie NULL (wskazuje na prawidłową pamięci)

0

jakakolwiek

EINVAL

Nie zmodyfikowano

NieNULL

0< rozmiar < 26

jakakolwiek

EINVAL

Pusty ciąg znaków

NieNULL

>= 26

NULL

EINVAL

Pusty ciąg znaków

NieNULL

>= 26

< 0

EINVAL

Pusty ciąg znaków

Uwagi

ctime_s Funkcja konwertuje wartość godziny przechowywane jako time_t struktury na ciąg znaków.time Wartość jest zazwyczaj uzyskiwany w wyniku wywołania czas, która oblicza liczbę sekund, jaka upłynęła od północy (00:00), 1 stycznia 1970 r., skoordynowanego czasu uniwersalnego (UTC).Ciąg wartości zwracanej zawiera dokładnie 26 znaków i ma postać:

Wed Jan 02 02:03:55 1980\n\0

Wykorzystywany jest zegar 24-godzinny.Wszystkie pola są stałej szerokości.Znak nowego wiersza (\n) i znak null (\0) zajmują dwie ostatnie pozycje ciągu.

Ciąg znaków konwertowanego jest również dostosowanie zgodnie z ustawieniami strefy czasu lokalnego.Zobacz time, _ftime, i localtime32_s funkcji, aby uzyskać informacje o konfigurowaniu czasu lokalnego i _tzset funkcji, aby uzyskać informacje o definiowaniu środowiska strefy czasowej i zmienne globalne.

_wctime32_si _wctime64_s są szeroko charakter wersji _ctime32_s i _ctime64_s; zwracając wskaźnik do wide znakowy ciąg.Otherwise, _ctime64_s, _wctime32_s, and _wctime64_s behave identically to _ctime32_s.

ctime_sjest funkcją wbudowaną, którego wynikiem jest _ctime64_s i time_t jest równoważne z __time64_t.Jeśli chcesz wymusić na kompilatorze interpretowania time_t jako stary 32-bitowych time_t, można zdefiniować _USE_32BIT_TIME_T.Spowoduje to, że takie postępowanie ctime_s do oceny do _ctime32_s.Nie jest to zalecane, ponieważ aplikacja może nie działać po 18 stycznia 2038 r., i nie jest dozwolona na platformach 64-bitowych.

W języku C++, korzystanie z tych funkcji jest uproszczone przez przeciążenia szablonu; przeciążenia mogą automatycznie wydedukować długość buforu, eliminując konieczność określenia argumentu rozmiaru.Aby uzyskać więcej informacji, zobacz Przeciążenia bezpiecznych szablonów.

Rutynowe mapowania zwykłego tekstu

Procedura Tchar.h

_UNICODE & _MBCS nie zdefiniowano

_MBCS zdefiniowano

_UNICODE zdefiniowany

_tctime_s

ctime_s

ctime_s

_wctime_s

_tctime32_s

_ctime32_s

_ctime32_s

_wctime32_s

_tctime64_s

_ctime64_s

_ctime64_s

_wctime64_s

Wymagania

Procedura

Wymagany nagłówek

ctime_s,

_ctime32_s,

_ctime64_s

<czas.h>

_wctime_s,

_wctime32_s,

_wctime64_s

<Time.h> lub <wchar.h>

Dodatkowe informacje o zgodności – zobacz: Zgodność we Wprowadzeniu.

Biblioteki

Wszystkie wersje Bibliotek uruchomieniowych C.

Przykład

// crt_wctime_s.c
/* This program gets the current
 * time in time_t form and then uses _wctime_s to
 * display the time in string form.
 */

#include <time.h>
#include <stdio.h>

#define SIZE 26

int main( void )
{
   time_t ltime;
   wchar_t buf[SIZE];
   errno_t err;

   time( &ltime );

  
   err = _wctime_s( buf, SIZE, &ltime );
   if (err != 0)
   {
      printf("Invalid Arguments for _wctime_s. Error Code: %d\n", err);
   }
   wprintf_s( L"The time is %s\n", buf );
}

Przykładowe dane wyjściowe

The time is Fri Apr 25 13:03:39 2003

Odpowiednik w programie .NET Framework

Zobacz też

Informacje

Zarządzanie czasem

asctime_s, _wasctime_s

ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64

_ftime, _ftime32, _ftime64

gmtime_s, _gmtime32_s, _gmtime64_s

localtime_s, _localtime32_s, _localtime64_s

time, _time32, _time64