getdate(3) Library Functions Manual getdate(3) getdate, getdate_r - + LIBRARY Standard C library (libc, -lc) #include struct tm *getdate(const char *string); extern int getdate_err; int getdate_r(const char *restrict string, struct tm *restrict res); glibc (. feature_test_macros(7)): getdate(): _XOPEN_SOURCE >= 500 getdate_r(): _GNU_SOURCE getdate() , string . tm . tm , , getdate(). strptime(3), ( format), getdate() , , DATEMSK. , , . . , . , , strptime(3). , POSIX.1-2001: %Z . glibc. %Z, . , ( localtime(3)). , . ( ), , , . , . When no hour, minute, and second are given, the current hour, minute, and second are taken. , , , , . getdate_r() GNU getdate(). , , , res. getdate() struct tm. NULL, getdate_err , . errno . getdate_r() 0; , . getdate_err ( getdate()) ( getdate_r()): 1 DATEMSK -- . 2 , DATEMSK, . 3 . 4 . 5 . 6 ( ). 7 , . 8 . DATEMSK , . TZ LC_TIME , strptime(3). attributes(7). +----------------------------+----------------------------------------------------------+--------------------------+ | | | | +----------------------------+----------------------------------------------------------+--------------------------+ |getdate() | | MT-Unsafe race:getdate | | | | env locale | +----------------------------+----------------------------------------------------------+--------------------------+ |getdate_r() | | MT-Safe env locale | +----------------------------+----------------------------------------------------------+--------------------------+ POSIX.1 strptime(3) %E %O, getdate(). glibc, getdate() strptime(3), . POSIX.1-2008. POSIX.1-2001. , , getdate() tm. : $ TFILE=$PWD/tfile $ echo '%A' > $TFILE # Full name of the day of the week $ echo '%T' >> $TFILE # Time (HH:MM:SS) $ echo '%F' >> $TFILE # ISO date (YYYY-MM-DD) $ date $ export DATEMSK=$TFILE $ ./a.out Tuesday '2009-12-28' '12:22:33' Sun Sep 7 06:03:36 CEST 2008 Call 1 ("Tuesday") succeeded: tm_sec = 36 tm_min = 3 tm_hour = 6 tm_mday = 9 tm_mon = 8 tm_year = 108 tm_wday = 2 tm_yday = 252 tm_isdst = 1 Call 2 ("2009-12-28") succeeded: tm_sec = 36 tm_min = 3 tm_hour = 6 tm_mday = 28 tm_mon = 11 tm_year = 109 tm_wday = 1 tm_yday = 361 tm_isdst = 0 Call 3 ("12:22:33") succeeded: tm_sec = 33 tm_min = 22 tm_hour = 12 tm_mday = 7 tm_mon = 8 tm_year = 108 tm_wday = 0 tm_yday = 250 tm_isdst = 1 #define _GNU_SOURCE #include #include #include int main(int argc, char *argv[]) { struct tm *tmp; for (size_t j = 1; j < argc; j++) { tmp = getdate(argv[j]); if (tmp == NULL) { printf("Call %zu failed; getdate_err = %d\n", j, getdate_err); continue; } printf("Call %zu (\"%s\") succeeded:\n", j, argv[j]); printf(" tm_sec = %d\n", tmp->tm_sec); printf(" tm_min = %d\n", tmp->tm_min); printf(" tm_hour = %d\n", tmp->tm_hour); printf(" tm_mday = %d\n", tmp->tm_mday); printf(" tm_mon = %d\n", tmp->tm_mon); printf(" tm_year = %d\n", tmp->tm_year); printf(" tm_wday = %d\n", tmp->tm_wday); printf(" tm_yday = %d\n", tmp->tm_yday); printf(" tm_isdst = %d\n", tmp->tm_isdst); } exit(EXIT_SUCCESS); } . time(2), localtime(3), setlocale(3), strftime(3), strptime(3) Azamat Hackimov , Dmitry Bolkhovskikh , Vladislav , Yuri Kozlov ; GNU 3 , . . , , . Linux man-pages 6.06 31 2023 . getdate(3)