@node strftime
@subsection @code{strftime}
@findex strftime

POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strftime.html}

Gnulib module: strftime-fixes
@mindex strftime-fixes

Portability problems fixed by Gnulib:
@itemize
@item
On native Windows platforms (mingw, MSVC), this function works incorrectly
when the environment variable @env{TZ} has been set by Cygwin.
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@item
The %c specifier does not work with a time retrieved through @code{gmtime}
or @code{gmtime_r}, since it outputs also the current time zone,
on some platforms:
glibc 2.30, NetBSD 10.0, Solaris 11.4.
@item
The %c specifier produces no weekday name and no month name, only a
potentially ambiguous numerical output, on some platforms:
mingw, MSVC.
@item
The %h specifier produces empty output on some platforms:
mingw, MSVC.
@item
The %r specifier produces empty output on some platforms:
mingw, MSVC.
@item
The %r specifier produces empty output, at least in a French locale,
on some platforms:
macOS 12.5, FreeBSD 14.0.
@item
The %r specifier includes an AM/PM indicator, at least in a French locale,
on some platforms:
NetBSD 10.0, Solaris 11.4.
@item
The %p specifier produces non-empty output, at least in a French locale,
on some platforms:
NetBSD 10.0, Solaris 11.4.
@item
The Windows C runtime library (which is used by MinGW) does not
support the %e specifier (and possibly the other more recent SUS
specifiers too, i.e., %C, %D, %h, %n, %r, %R, %t, and %T).
@item
Native Windows platforms (mingw, MSVC) support only a subset of time
zones supported by GNU or specified by POSIX@.  @xref{tzset}.
@end itemize

@mindex nstrftime
Extension: Gnulib offers a module @samp{nstrftime} that provides an
@code{nstrftime} function with various GNU extensions.
