Asctime Funkcja w języku C

Asctime Funkcja w języku C
Dane czasowe są obliczane od sekund od 00:00:00 UTC 1 stycznia 1970 r. GMT lub czas UNIX. Aby użyć tych danych w formacie czytelnym człowieka, musisz przekonwertować czas UNIX na datę godziny, a następnie na ciąg.

W tym Wskazówka Linux Artykuł, wyjaśnimy, jak używać asctime () Aby pobrać dane czasowe z kalendarza systemowego i przekonwertować je na ciąg. Zbadamy teoretyczny opis struktury tych danych TM, składnię funkcji oraz jej argumenty wejściowe i wyjściowe wraz z typami danych, które obsługuje każdy z nich. Następnie zaimplementujemy użycie tej funkcji z praktycznymi przykładami przy użyciu fragmentów kodu i obrazów.

Składnia funkcji asctime () w języku c

char * str asctime (const struct tm * tm_ptr);

Opis funkcji asctime () w języku c

asctime () funkcja pobiera informacje z struktury TM, na które wskazuje *tm_ptr wskaźnik, przekształca go w ciąg i zwraca wskaźnik *str.

Format, który jest zwracany przez tę funkcję w ciągu wyjściowego, jest następujący:

„Www mmm dd hh: mm: ss tys. \ N \ 0”

Zarówno dni, jak i miesiące są reprezentowane przez pierwsze trzy litery ich nazwisk. Daty są reprezentowane przez dwie cyfry na dni i miesiące i cztery cyfry w ciągu roku. Ciąg odpowiadający str na końcu zawiera charakter specjalny \ n \ 0.

asctime () funkcja i jej zmienne są zdefiniowane w „czasie.H ”nagłówek. Aby ich użyć, musimy je uwzględnić w „.c ”lub„.plik h ”w następujący sposób:

#włączać

Jak uzyskać czas lokalny w formacie ciągu z funkcją Asctime () w języku C

W tym przykładzie pokażemy ci krok po kroku, jak korzystać z asctime () Funkcja, aby uzyskać dane czasu i czasu lokalnego w strukturze TM, a następnie przekonwertować je na ciąg znaków, które odczytują ludzi.

Jak wyjaśniliśmy we wstępie, czas systemu jest obliczany na podstawie czasu UNIX. Dlatego musimy najpierw uzyskać funkcję Time () time_t.

W poniższym fragmencie Time () dostaje czas UNIX U_Time i drukuje go do konsoli dowodzenia:

#włączać
#włączać
void main ()

time_tu_time;
U_time = czas (null);
printf („UNIX Time: %ld \ n”, u_time);

Poniższy obraz wyświetla czas UNIX, który jest zwracany U_Time.

Po uzyskaniu czasu z UNIX musimy przekonwertować te dane na czas lokalny lub GMT i przechowywać je w strukturze całkowitej, tm.

Każda liczba całkowita w tej strukturze reprezentuje sekundy, minuty, godziny, dni itp. Później podamy bardziej szczegółowy opis zmiennych zawartych w tej strukturze i sposób, w jaki możesz uzyskać dostęp do każdego z nich.

Dane ze struktury TM mogą być czasem lokalnym, w którym się masz czas lokalny() lub czas GMT z GMTime ().

Obie funkcje mają czas UNIX za pomocą U_Time jako argument wejściowy i zwróć wskaźnik tm_ptr z tm, które musimy wcześniej zdefiniować, jak pokazano następująco:

#włączać
#włączać
void main ()


struct tm *tm_ptr; // Zdefiniuj TM_PTR jako wskaźnik do TM

Należy zauważyć, że zarówno czas UNIX U_Time a dane TM są aktualizowane za każdym razem, gdy wywołuje jedna z funkcji, które pobierają te dane. W przeciwnym razie dane z ostatniego połączenia pozostają przechowywane w ich zmiennych.

W poniższym fragmencie kodu widzimy, jak pobrać dane czasu lokalnego w strukturze TM za pomocą funkcji LocalTime (). Po wywołaniu tej funkcji musisz przekazać czas z UNIX jako argument wejściowy i wskaźnik do TM jako argument wyjściowy.

tm_ptr = localTime (& u_time);

W ten sposób przekonwertowaliśmy czas z UNIX na czas lokalny i przechowyliśmy go w strukturze TM. Musimy tylko przekonwertować te dane na ciąg za pomocą asctime ().

W poniższym fragmencie widzimy kod, aby uzyskać czas z UNIX. Oblicz te dane i przechowuj je w TM Struct. Następnie używamy asctime () do konwersji liczb całkowitych struktury, na którą wskazuje *tm_ptr do strun.

Ta funkcja zwraca ciąg, który jest wskazany przez *str_ptr W swoim argumencie wyjściowym.

Na koniec wyprowadzamy uzyskany ciąg do konsoli poleceń za pomocą printf ().

#włączać
#włączać
void main ()

time_tu_time; // Zdefiniuj U_Time jako wyjście czasu ()
const char*str_ptr; // Zdefiniuj wskaźnik łańcucha
struct tm *tm_ptr; // Zdefiniuj TM_PTR jako wskaźnik do TM
U_time = czas (null); // Dostajemy czas UTC w U_Time
tm_ptr = localTime (& u_time); // Dostajemy czas lokalny w TM
str_ptr = asctime (tm_ptr); // Konwertuj TM na ciąg
printf („Czas lokalny to: %s \ n”, str_ptr);

Poniższy obraz pokazuje wynik tego kodu:

TM struct

tm struktura i time_t I clock_t Zmienne to predefiniowane struktury i typy danych w „czasie.H ”nagłówek i są używane do przechowywania wyników zwracanych przez niektóre ze zdefiniowanych funkcji tam.

Spójrzmy teraz na strukturę liczby całkowitej TM i nazwy poszczególnych zmiennych, które ją wymyślą:

structm
inttm_sec; // sekundy (0-61)
inttm_min; // minuty (0-59)
inttm_hour; // godziny (0-23)
inttm_mday; // dzień (1-31)
inttm_mon; // miesiąc (0-11)
inttm_year; // lata od 1970 roku
inttm_wday; // WEDEDDADED (0-6; niedziela = 0)
inttm_yday; // Dzień Roku (0-365)
inttm_isdst; // Czas letni 1 = tak; 0 = nie; -1 = niezdefiniowany
;

Wniosek

W tym Wskazówka Linux Artykuł, wyjaśniliśmy, jak uzyskać czas systemu UNIX i przekonwertować go na ciąg kalendarza za pomocą asctime () krok po kroku. Krótko wyjaśniliśmy również dodatkowe funkcje, które są potrzebne do przetworzenia i pobrania tych danych, a także sposobu obsługi danych TM i czasu. Mamy nadzieję, że ten artykuł uznałeś. Więcej Wskazówka Linux Artykuły na temat języka C, użyj wyszukiwarki na naszej stronie internetowej.