Udostępnij za pośrednictwem


ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

Konwertowanie wartości czasu na ciąg znaków oraz dostosować ustawienia strefy czasu lokalnego.Są to wersje ctime, _ctime64, _wctime, _wctime64 z rozszerzeń zabezpieczeń opisane 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

  • [out]buffer
    Musi być wystarczająco duży, aby pomieścić 26 znaków.Wskaźnik w wyniku ciąg znaków lub NULLjeżeli:

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

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

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

    • Jeśli korzystasz z _ctime_s lub _wctime_s, funkcje te są otok do poprzedniej funkcji.Zobacz sekcję Spostrzeżenia.

  • [w]numberOfElements
    Rozmiar buforu.

  • [w] time
    Wskaźnik, aby czas przechowywane.

Wartość zwracana

Zero, jeśli kończy się pomyślnie.W przypadku awarii ze względu na nieprawidłowy parametr nieprawidłowy parametr wywoływana jest funkcja obsługi, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, zwracany jest kod błędu.Kody błędów są zdefiniowane w ERRNO.H; Aby uzyskać listę tych błędów, zobacz errno.Faktyczne kody błędów generowane dla każdego warunku błędu są pokazane w poniższej tabeli.

Warunki błędów

buffer

numberOfElements

time

Zwrot

Wartośćbuffer

NULL

wszelkie

wszelkie

EINVAL

Nie zmodyfikowano

Nie NULL (wskazuje prawidłowy pamięci)

0

wszelkie

EINVAL

Nie zmodyfikowano

NieNULL

0 < rozmiar < 26

wszelkie

EINVAL

Pusty ciąg znaków

NieNULL

> = 26

WARTOŚĆ NULL

EINVAL

Pusty ciąg znaków

NieNULL

> = 26

< 0

EINVAL

Pusty ciąg znaków

Uwagi

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

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

24-Godzinnym jest używany.Wszystkie pola mają stałą szerokość.Nowy znak wiersza (\n) i znak null (\0) zajmują ostatnie dwie pozycje w ciągu.

Ciąg znaków przekonwertowanych również jest korygowana według czasu lokalnego ustawienia strefy.Zobacz time, _ftime, i localtime32_s funkcje informacje na temat konfigurowania czasu lokalnego oraz _tzset funkcji, aby uzyskać informacje o definiowaniu środowiska strefę czasową i zmienne globalne.

_wctime32_si _wctime64_s wersji szerokich znaków są _ctime32_s i _ctime64_s; zwracanie wskaźnik do łańcuch szerokich znaków.Otherwise, _ctime64_s, _wctime32_s, and _wctime64_s behave identically to _ctime32_s.

ctime_sfunkcji śródwierszowej, którego wynikiem jest _ctime64_s i time_t jest równoważne z __time64_t.Jeśli trzeba wymusić na kompilatorze interpretowania time_t jako stary 32-bitowe time_t, można zdefiniować _USE_32BIT_TIME_T.Spowoduje to zaawansowana ctime_s do oceny do _ctime32_s.Nie jest to zalecane, ponieważ aplikacja może zakończyć się niepowodzeniem po 18 stycznia 2038, i nie jest dozwolone na platformach 64-bitowych.

W języku C++ korzystając z tych funkcji jest uproszczona poprzez overloads szablonu; overloads można wywnioskować strony długość buforu automatycznie, eliminując konieczność należy określić argument rozmiar.Aby uzyskać więcej informacji, zobacz Secure, szablon Overloads.

Tekst rodzajowy rutynowych mapowania

TCHAR.Rutynowe H

_UNICODE & Nie zdefiniowano _MBCS

_MBCS, definicja

_UNICODE, definicja

_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

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

ctime_s,

_ctime32_s,

_ctime64_s

<time.h>

_wctime_s,

_wctime32_s,

_wctime64_s

<time.h> lub <wchar.h>

Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.

Biblioteki

Wszystkie wersje biblioteki uruchomieniowej 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