@node ctime @section @code{ctime} @findex ctime POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9699919799/functions/ctime.html} Gnulib module: ctime Portability problems fixed by Gnulib: @itemize @item On native Windows platforms (mingw, MSVC), this function works incorrectly when the environment variable @code{TZ} has been set by Cygwin. @end itemize Portability problems not fixed by Gnulib: @itemize @item This function is deprecated in C23. Portable applications can use @code{localtime_r} and @code{strftime} (or even @code{sprintf}) instead. @item This function may overflow its internal buffer if an invalid year is passed. @item The @code{ctime} function need not be reentrant, and consequently is not required to be thread safe. Implementations of @code{ctime} typically write the timestamp into static buffer. If two threads call @code{ctime} at roughly the same time, you might end up with the wrong date in one of the threads, or some undefined string. There is a re-entrant interface @code{ctime_r}. @item Native Windows platforms (mingw, MSVC) support only a subset of time zones supported by GNU or specified by POSIX@. @xref{tzset}. @end itemize A more flexible function is @code{strftime}. However, note that it is locale dependent.