#include <time.h>
size_t strftime_l( char *restrict s, size_t maxsize, const char *restrict format, const struct tm *restrict timeptr, locale_t locale );
Version localisée POSIX de strftime.
Cet exemple formate une date avec strftime_l en utilisant explicitement la locale C. La locale est créée avant l'appel, puis libérée à la fin du programme.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
#define _XOPEN_SOURCE 700 #include <locale.h> #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { struct tm date = { 0 }; char buffer[64]; date.tm_mday = 15; date.tm_mon = 0; date.tm_year = 124; date.tm_wday = 1; locale_t locale = newlocale( LC_TIME_MASK, "C", (locale_t) 0 ); if ( locale == (locale_t) 0 ) { perror( "newlocale" ); return EXIT_FAILURE; } if ( strftime_l( buffer, sizeof buffer, "%A %d %B %Y", &date, locale ) == 0 ) { fprintf( stderr, "Tampon trop petit.\n" ); freelocale( locale ); return EXIT_FAILURE; } printf( "%s\n", buffer ); freelocale( locale ); return EXIT_SUCCESS; } |
Cet exemple produit l'affichage suivant.
Monday 15 January 2024
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :