Udostępnij za pośrednictwem


asctime_s, _wasctime_s

Konwertuj tm czas struktury na ciąg znaków.Funkcje te są wersje asctime, _wasctime z ulepszeń zabezpieczeń, zgodnie z opisem w Funkcje zabezpieczeń w CRT.

errno_t asctime_s( 
   char* buffer,
   size_t numberOfElements,
   const struct tm *_tm 
);
errno_t _wasctime_s( 
   wchar_t* buffer,
   size_t numberOfElements
   const struct tm *_tm 
);
template <size_t size>
errno_t asctime_s( 
   char (&buffer)[size],
   const struct tm *_tm 
); // C++ only
template <size_t size>
errno_t _wasctime_s( 
   wchar_t (&buffer)[size],
   const struct tm *_tm 
); // C++ only

Parametry

  • buffer
    [Brak] Wskaźnik do buforu do przechowywania wyników ciąg znaków.Ta funkcja zakłada wskaźnik do lokalizacji w pamięci ważne o wielkości określone przez numberOfElements.

  • numberOfElements
    [w] Rozmiar bufora używanego do przechowywania wyników.

  • _tm
    [w] Data/Godzina struktury.Ta funkcja zakłada wskaźnik do ważnego structtm obiektu.

Wartość zwracana

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

Warunki błędów

buffer

numberOfElements

tm

Zwrot

Wartość wbuffer

NULL

Wszelkie

Wszelkie

EINVAL

Nie zmodyfikowano

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

0

Wszelkie

EINVAL

Nie zmodyfikowano

NieNULL

0< rozmiar < 26

Wszelkie

EINVAL

Pusty ciąg znaków

NieNULL

>= 26

NULL

EINVAL

Pusty ciąg znaków

NieNULL

>= 26

Nieprawidłowa godzina struktury lub wartości spoza zakresu dla składników czasu

EINVAL

Pusty ciąg znaków

[!UWAGA]

Błąd warunki dotyczące wasctime_s są podobne do asctime_s z wyjątkiem tego, że limit rozmiaru jest mierzona w słowach.

Uwagi

asctime Funkcja konwertuje czas przechowywane jako struktura na ciąg znaków._tm Wartość jest zazwyczaj uzyskiwany w wyniku wywołania gmtime lub localtime.Obie funkcje może służyć do wypełnienia tm struktury, zgodnie z definicją w czasie.H.

Członek timeptr

Wartość

tm_hour

Godziny od północy (0-23)

tm_isdst

Dodatnia, jeśli zmiany czasu letniego obowiązuje; 0, jeśli zmiany czasu letniego nie jest włączone; ujemna, jeśli stan czasu letniego jest nieznany.Biblioteki wykonawczej C przyjmuje zasady wykonywania obliczeń czasu letniego (DST) Stanów Zjednoczonych.

tm_mday

Dzień miesiąca (1-31)

tm_min

Minut po godzinie (0-59)

tm_mon

Miesiąc (0-11; Styczeń = 0)

tm_sec

Sekund po minucie (0-59)

tm_wday

Dzień tygodnia (0-6; Niedziela = 0)

tm_yday

Dzień roku (0-365; 1 stycznia = 0)

tm_year

Rok (bieżącego roku minus 1900)

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

Wynik zastosowania ciągu produkowane przez asctime_s 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 i znak null zajmują dwie ostatnie pozycje ciągu.Wartość przekazywana jako drugi parametr powinien być co najmniej to duży.Jeżeli jest mniej, kod błędu, EINVAL, zostaną zwrócone.

_wasctime_s to wersja znaków dwubajtowych asctime_s._wasctime_s i asctime_s zachowują się identycznie w innych przypadkach.

Tekst rodzajowy rutynowych mapowania

Procedura Tchar.h

_UNICODE & _MBCS nie zdefiniowano

_MBCS zdefiniowano

_UNICODE zdefiniowany

_tasctime_s

asctime_s

asctime_s

_wasctime_s

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.

Wymagania

Procedura

Wymagany nagłówek

asctime_s

<czas.h>

_wasctime_s

<Time.h> lub <wchar.h>

Zabezpieczenia

Jeśli wskaźnik bufor nie jest NULL i wskaźnik nie wskazuje nieprawidłowy bufor, funkcja spowoduje zastąpienie wszystko, co znajduje się w lokalizacji.Może to również spowodować naruszenie zasad dostępu.

A przepełnienie buforu może wystąpić, jeśli przekazany argument rozmiar jest większy niż rzeczywisty rozmiar buforu.

Przykład

Ten program umieszcza czas systemowy w liczba całkowita długa aclock, przekłada się to na strukturę newtime i konwertuje ją na ciąg formularza dla wyjścia, za pomocą asctime_s funkcji.

// crt_asctime_s.c
#include <time.h>
#include <stdio.h>

struct tm newtime;
__time32_t aclock;

int main( void )
{
   char buffer[32];
   errno_t errNum;
   _time32( &aclock );   // Get time in seconds.
   _localtime32_s( &newtime, &aclock );   // Convert time to struct tm form.

   // Print local time as a string.

   errNum = asctime_s(buffer, 32, &newtime);
   if (errNum)
   {
       printf("Error code: %d", (int)errNum);
       return 1;
   }
   printf( "Current date and time: %s", buffer );
   return 0;
}
  

Odpowiednik w programie .NET Framework

Zobacz też

Informacje

Zarządzanie czasem

ctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

_ftime, _ftime32, _ftime64

gmtime_s, _gmtime32_s, _gmtime64_s

localtime_s, _localtime32_s, _localtime64_s

time, _time32, _time64

_tzset