NAZWA¶
asctime, ctime, gmtime, localtime, mktime - konwersja daty i czasu do postaci
  czasu rozłożonego lub ASCII
SKŁADNIA¶
#include <time.h>
 
char *asctime(const struct tm *tm);
 
char *asctime_r(const struct tm *tm, char *buf);
 
char *ctime(const time_t *timep);
 
char *ctime_r(const time_t *timep, char *buf);
 
struct tm *gmtime(const time_t *timep);
 
struct tm *gmtime_r(const time_t *timep, struct tm *result);
 
struct tm *localtime(const time_t *timep);
 
struct tm *localtime_r(const time_t *timep, struct tm *result);
 
time_t mktime(struct tm *tm);
OPIS¶
 Uwaga! To tłumaczenie może być nieaktualne!
Funkcje 
ctime(), 
gmtime() oraz 
localtime() przyjmują
  argument typu 
time_t, reprezentujący czas kalendarzowy.
  Zinterpretowany jako bezwzględna wartość czasu, określa on
  ilość sekund, jakie upłynęły od godziny 00:00:00 1
  stycznia 1970 czasu Coordinated Universal Time (UTC).
Funkcje 
asctime() oraz 
mktime() przyjmują jako argument czas
  rozłożony, który jest reprezentacją podzieloną na
  rok, miesiąc, dzień itd.
Czas rozłożony jest przechowywany w strukturze 
tm,
  zdefiniowanej w 
<time.h> następująco:
 
struct tm {
	int	tm_sec;			/* sekundy */
	int	tm_min;			/* minuty */
	int	tm_hour;		/* godziny */
	int	tm_mday;		/* dzień miesiąca */
	int	tm_mon;			/* miesiąc */
	int	tm_year;		/* rok */
	int	tm_wday;		/* dzień tygodnia */
	int	tm_yday;		/* dzień roku */
	int	tm_isdst;		/* sezonowa zmiana czasu */
};
 
Elementy struktury 
tm to:
  - tm_sec
 
  - Liczba sekund po pełnej minucie, normalnie z zakresu
      od 0 do 59, ale może wynosić nawet do 61, aby
      umożliwić sekundy przestępne.
 
  - tm_min
 
  - Liczba minut po pełnej godzinie, z zakresu od 0 do
    59.
 
  - tm_hour
 
  - Liczba godzin po północy, z zakresu od 0 do
    23.
 
  - tm_mday
 
  - Dzień tygodnia, z zakresu od 1 do 31.
 
  - tm_mon
 
  - Liczba miesięcy od stycznia, z zakresu od 0 do
    11.
 
  - tm_year
 
  - Liczba lat od 1900.
 
  - tm_wday
 
  - Liczba dni od niedzieli, z zakresu od 0 do 6.
 
  - tm_yday
 
  - Liczba dni od 1 stycznia, z zakresu od 0 do 365.
 
  - tm_isdst
 
  - Znacznik, który wskazuje, czy dla podanego czasu
      została przeprowadzona zmiana czasu zimowy/letni. Jeśli
      wartość ta jest dodatnia, to zmiana czasu została
      przeprowadzona, jeśli wynosi zero - zmiany nie przeprowadzono, a
      jeśli jest ujemna - oznacza to, że informacja dotycząca
      zmiany czasu nie jest dostępna.
 
Wywołanie 
ctime(t) jest równoważne
  
asctime(localtime(t)). Przekształca ono czas
  kalendarzowy 
t na łańcuch o postaci
 
"śro sty 30 21:49:08
  1993\n"
 
Skróty dni tygodnia to `nie', `pon', `wto', `śro', `czw', `pią' i
  `sob'. Skróty miesięcy to `sty', `lut', `mar', `kwi', `maj', `cze',
  `lip', `sie', `wrz', `paź', `lis' i `gru'. Zwracany jest wskaźnik do
  statycznego łańcucha, który to łańcuch może
  zostać nadpisany przy kolejnym wywołaniu dowolnej funkcji daty i
  czasu. Funkcja zapisuje również informacje na temat aktualnej strefy
  czasowej do zewnętrznej zmiennej 
tzname (patrz 
tzset(3)).
  Wielowejściowa wersja tej funkcji, 
ctime_r(), robi to samo, ale
  zapisuje łańcuch w podanym przez użytkownika buforze o
  długości co najmniej 26. Nie musi ona ustawiać 
tzname.
Funkcja 
gmtime() przekształca czas kalendarzowy 
timep na czas
  rozłożony, wyrażony w Coordinated Universal Time (UTC).
  Może ona zwrócić wartość NULL, jeśli rok nie
  daje się zapisać jako liczba całkowita. Zwracany jest
  wskaźnik do statycznej struktury, która to struktura może
  zostać nadpisana przy kolejnym wywołaniu dowolnej funkcji daty i
  czasu. Funkcja 
gmtime_r() robi to samo, ale zapisuje dane do struktury
  podanej przez użytkownika. Nie musi ona ustawiać 
tzname.
Funkcja 
localtime() przekształca czas kalendarzowy 
timep na
  czas rozłożony, wyrażony względem wybranej przez
  użytkownika strefy czasowej. Funkcja działa tak, jakby
  wywoływała 
tzset(3) i wpisywała do zewnętrznej
  zmiennej 
tzname informacje na temat aktualnej strefy czasowej, do
  
timezone - różnicę w sekundach pomiędzy Coordinated
  Universal Time (UTC) a lokalnym czasem standardowym, a do 
daylight -
  wartość niezerową jeśli przez jakąś
  część roku obowiązuje inny czas niż podany
  (zimowy/letni). Zwracany jest wskaźnik do statycznej struktury,
  która to struktura może zostać nadpisana przy kolejnym
  wywołaniu dowolnej funkcji daty i czasu. Funkcja 
localtime_r()
  robi to samo, ale zapisuje dane do struktury podanej przez użytkownika.
  Nie musi ona ustawiać 
tzname.
Funkcja 
asctime() przekształca czas rozłożony 
tm na
  łańcuch tego samego formatu, co 
ctime(). Zwracany jest
  wskaźnik do statycznego łańcucha, który to
  łańcuch może zostać nadpisany przy kolejnym wywołaniu
  dowolnej funkcji daty i czasu. Funkcja 
asctime_r() robi to samo, ale
  zapisuje łańcuch w podanym przez użytkownika buforze o
  długości co najmniej 26.
Funkcja 
mktime() przekształca strukturę czasu
  rozłożonego, wyrażoną w czasie lokalnym, na czas
  kalendarzowy. Funkcja ignoruje wartości elementów 
tm_wday i
  
tm_yday i oblicza je ponownie na podstawie innych informacji ze
  struktury czasu rozłożonego. Jeśli elementy struktury mają
  wartości spoza zakresu wartości dopuszczalnych, to zostana
  znormalizowane (w taki sposób, że np. 40 października zostanie
  zamieniony na 9 listopada). Wywołanie 
mktime() zapisuje
  również informacje na temat aktualnej strefy czasowej do
  zewnętrznej zmiennej 
tzname. Jeśli podany czas
  rozłożony nie może zostać przedstawiony jako czas
  kalendarzowy (liczba sekund od początku epoki), 
mktime() zwraca
  wartość (time_t)(-1) i nie zmienia wartości elementów
  
tm_wday i 
tm_yday struktury czasu rozłożonego.
WARTOŚĆ ZWRACANA¶
Każda z tych funkcji zwraca opisaną powyżej wartość lub
  NULL (-1 w przypadku 
mktime()) w razie wystąpienia
  błędu.
UWAGI¶
Następujące cztery funkcje 
acstime(), 
ctime(),
  
gmtime() i 
localtime() zwracają wskaźnik do
  statycznych danych i w związku z tym nie są przystosowane do
  wielowątkowości. Wielowątkowe wersje 
acstime_r(),
  
ctime_r(), 
gmtime_r() i 
localtime_r() są wymienione
  w SUSv2 i dostępne począwszy od libc 5.2.5.
Wersja struktury tm zawarta w glibc posiada dodatkowe pola
 
long tm_gmtoff;           /* Sekundy na wschód od UTC */
const char *tm_tm_zone;   /* Skrót strefy czasowej */
 
 
zdefiniowane, gdy _BSD_SOURCE jest ustawione przed włączeniem
  
<time.h>. Jest to rozszerzenie BSD, obecnie w 4.3BSD-Reno.
ZGODNE Z¶
SVID 3, POSIX, BSD 4.3, ISO 9899
ZOBACZ TAKŻE¶
date(1), 
gettimeofday(2), 
newctime(3), 
time(2),
  
utime(2), 
clock(3), 
difftime(3), 
strftime(3),
  
strptime(3), 
tzset(3)
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu
  Tłumaczenia Manuali i 
może nie być aktualne. W razie
  zauważenia różnic między powyższym opisem a
  rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o
  zapoznanie się z oryginalną (angielską) wersją strony
  podręcznika za pomocą polecenia:
  
  - man --locale=C 3 ctime
 
Prosimy o pomoc w aktualizacji stron man - więcej informacji można
  znaleźć pod adresem
  
http://sourceforge.net/projects/manpages-pl/.