### 6.13 `wcsftime`—convert date and time to a formatted wide-character string

Synopsis

    #include <time.h>
    #include <wchar.h>
    size_t wcsftime(wchar_t *s, size_t maxsize,
        const wchar_t *format, const struct tm *timp);

Description
`wcsftime` is equivalent to `strftime`, except that:

- The argument s points to the initial element of an array of wide characters into which the generated output is to be placed.
- The argument maxsize indicates the limiting number of wide characters.
- The argument format is a wide-character string and the conversion specifiers are replaced by corresponding sequences of wide characters.
- The return value indicates the number of wide characters.

(The difference in all of the above being wide characters versus regular characters.) See `strftime` for the details of the format specifiers.

Returns
When the formatted time takes up no more than maxsize wide characters, the result is the length of the formatted wide string. Otherwise, if the formatting operation was abandoned due to lack of room, the result is `0`, and the wide-character string starting at s corresponds to just those parts of `*format` that could be completely filled in within the maxsize limit.

Portability
C99 and POSIX require `wcsftime`, but do not specify the contents of `*s` when the formatted string would require more than maxsize characters. Unrecognized specifiers and fields of `timp` that are out of range cause undefined results. Since some formats expand to 0 bytes, it is wise to set `*s` to a nonzero value beforehand to distinguish between failure and an empty string. This implementation does not support `s` being NULL, nor overlapping `s` and `format`.

`wcsftime` requires no supporting OS subroutines.

See Also
`strftime`