Se connecter
Se connecter
Inscription
Mot de passe perdu
Connexion:
[Actualités]
Nvidia prévient d'une pénurie de GPU ce trimestre, avec une reprise début 2025
[Actualités]
Les Technos #469 : Un jour sans fin
[Actualités]
Test Farming Simulator 25 (PS5) - Des innovations intéressantes mais des perfor...
[Actualités]
Qualcomm souhaite réduire davantage les prix des PC Windows basés sur ARM
[Actualités]
Finalement, Google préparerait une nouvelle tablette mais la Pixel Tablet 2 ser...
[Actualités]
Windows 10 version 22H2 : erreur de mise à jour et de désinstallation
[Actualités]
OpenAI prépare désormais son propre navigateur
[Actualités]
WhatsApp bat Telegram : les transcriptions des messages vocaux arrivent pour tou...
[Actualités]
Unreal et Unreal Tournament désormais gratuits sur Internet Archive
[Actualités]
Windows 10 : Microsoft affiche des publicités en plein écran pour les PC équi...
[Articles]
Dungeons 4 - Nintendo Switch Edition
[Articles]
The Bridge Curse 2 : The Extrication
[Articles]
Farmagia
[Articles]
I*CHU: Chibi Edition
[Articles]
Farming Simulator 25
[Articles]
Goblin Slayer -Another Adventurer- Nightmare Feast
[Articles]
Deel lance des programmes en marque blanche et pour les revendeurs pour plus de ...
[Articles]
ESET Research : WolfsBane, nouvelle porte dérobée de cyber-espionnage Linux cr...
[Articles]
Devoteam présente son nouveau plan stratégique « AMPLIFY » avec un fort acce...
[Articles]
LEGO Horizon Adventures
Actualités
Lettre d'information
Proposer une actualité
Archives
Actualités
Articles
Programmation
Press Release
Matériel
Logiciels
Livres
Interviews
Derniers commentaires
Jeux Vidéos
XBox One
XBox 360
Wii U
PSP
PS4
PS3
PC
DS
GameCube
3DS
Forum
Derniers messages
Informatique
Fun
Divers
Logithèque
Blogs
Divers
A Propos
Annonceurs
Contact
Recherche
RSS
Editer un article
Titre
Mots Clés
Texte
[size=18] [b]Nom[/b] [/size] strptime - Conversion d'une chaîne de date en une structure tm. [size=18] [b]Résumé[/b] [/size] [b]#define _XOPEN_SOURCE /* Pour GlibC2 */[/b] [b][/b] [b]#include
[/b] [b][i]char *strptime (char * buf , const char * format ,[/i][/b] [b][i]const struct tm * tm );[/i][/b] [size=18] [b]Description[/b] [/size] La fonction [b]strptime()[/b] est complémentaire de la fonction [b]strftime() .[/b] Elle convertit la chaîne de caractères pointée par [i]buf[/i] en une valeur qui est stockée dans la structure [b]tm[/b] pointée par l'argument [b]tm ,[/b] la conversion étant réalisée en suivant les indications contenues dans la chaîne [b]format .[/b] Cette dernière contient des descripteurs de champs et du texte, rappelant [b]scanf (3).[/b] Chaque descripteur consiste en un caractère [b]%[/b] suivi d'un second caractère indiquant le champ à interpréter. Tous les autres sont considérés comme du texte. Toutefois un espace blanc se trouvant dans la chaîne de format peut être mis en correspondance avec zéro ou plusieurs espaces. Il devrait toujours y avoir un espace ou un autre caractère alphanumérique entre deux descripteurs de champs. La fonction [b]strptime ()[/b] traite la chaîne d'entrée de gauche à droite. Les trois types d'éléments d'entrée possibles (espace, caractère littéral, conversion) sont manipulés l'un après l'autre. Si l'entrée ne peut pas être mise en correspondance avec la chaîne de format, la fonction s'arrête. Le reste du format et de la chaîne d'entrée ne sont pas traités. Les descripteurs applicables sont décrits ci-dessous. Dans le cas d'une chaîne de caractères (comme un nom de jour ou de mois), la comparaison ne tient pas compte des majuscules/minuscules. Dans le cas d'un nombre, les zéros au début sont autorisés mais pas obligatoires. [b]%%[/b] [table][row][col] [/col][col]Le caractère [b]%[/b][/col][/row][/table] [b]%a ou %A[/b] [table][row][col] [/col][col]Le jour de la semaine en utilisant les noms correspondants à la localisation. Les noms abrégés ou entiers peuvent être utilisés.[/col][/row][/table] [b]%b ou %B ou %h[/b] [table][row][col] [/col][col]Le mois en utilisant les noms correspondants à la localisation. Les noms abrégés ou entiers peuvent être utilisés.[/col][/row][/table] [b]%c[/b] [table][row][col] [/col][col]La date et l'heure en utilisant le format de la localisation.[/col][/row][/table] [b]%C[/b] [table][row][col] [/col][col]Le numéro de siècle (0-99).[/col][/row][/table] [b]%d ou %e[/b] [table][row][col] [/col][col]Le jour du mois (1-31)[/col][/row][/table] [b]%D[/b] [table][row][col] [/col][col]La date, ainsi : %m/%d/%y. C'est la date au format américain, très gênante pour les autres pays, notamment l'Europe qui utilise une notation %d/%m%y. Le format standard ISO 8601 est %Y-%m-%d.[/col][/row][/table] [b]%H[/b] [table][row][col] [/col][col]L'heure (0-23)[/col][/row][/table] [b]%I[/b] [table][row][col] [/col][col]L'heure (0-12)[/col][/row][/table] [b]%j[/b] [table][row][col] [/col][col]Le numéro du jour dans l'année (001-366)[/col][/row][/table] [b]%m[/b] [table][row][col] [/col][col]Le numéro du mois (1-12)[/col][/row][/table] [b]%M[/b] [table][row][col] [/col][col]La minute (0-59)[/col][/row][/table] [b]%n[/b] [table][row][col] [/col][col]Un espace blanc quelconque[/col][/row][/table] [b]%p[/b] [table][row][col] [/col][col]Équivalent local de AM ou PM (éventuellement rien).[/col][/row][/table] [b]%r[/b] [table][row][col] [/col][col]L'heure sur 12 heures avec l'équivalent local de AM ou PM. Dans la localisation POSIX, équivalent à %I:%M:%S %p. Si le champ [i]t_fmt_ampm[/i] de la catégorie LC_TIME de la localisation est vide, le comportement est indéfini.[/col][/row][/table] [b]%R[/b] [table][row][col] [/col][col]L'heure, ainsi : %H:%M[/col][/row][/table] [b]%S[/b] [table][row][col] [/col][col]Les secondes (0-61, des secondes de rattrapages sont autorisées)[/col][/row][/table] [b]%t[/b] [table][row][col] [/col][col]Un espace blanc quelconque[/col][/row][/table] [b]%T[/b] [table][row][col] [/col][col]Équivalent de %H:%M:%S[/col][/row][/table] [b]%U[/b] [table][row][col] [/col][col]Le numéro de semaine (0-53), le premier dimanche de janvier étant le premier jour de la semaine 1.[/col][/row][/table] [b]%w[/b] [table][row][col] [/col][col]Le numéro du jour dans la semaine (0-6), en commençant le dimanche.[/col][/row][/table] [b]%W[/b] [table][row][col] [/col][col]Le numéro de semaine (0-53), le premier lundi de janvier étant le premier jour de la semaine 1.[/col][/row][/table] [b]%x[/b] [table][row][col] [/col][col]la date, en utilisant le format usuel de la localisation.[/col][/row][/table] [b]%X[/b] [table][row][col] [/col][col]l'heure, en utilisant le format usuel de la localisation.[/col][/row][/table] [b]%y[/b] [table][row][col] [/col][col]l'année sans le siècle (0-99; les zéros au début sont autorisés mais pas obligatoires). Lorsque le siècle n'est pas indiqué par une autre conversion, les années 69 à 99 sont considérées comme étant du vingtième siècle (1969 à 1999), et les années 00-68 du vingt-et-unième siècle (2000-2068).[/col][/row][/table] [b]%Y[/b] [table][row][col] [/col][col]L'année en incluant le siècle (par exemple, 1996)[/col][/row][/table] Pour les noms des mois ou des jours de la semaine, les différences entre majuscules et minuscules sont ignorées. Certains descripteurs peuvent être complétés par les caractères modificateurs E et O, indiquant qu'il faut employer un autre format ou une autre spécification. Si cet autre format, ou cette autre conversion n'est pas disponible dans la localisation en cours, le descripteur n'est pas modifié. Le modificateur E indique que la chaîne d'entrée peut contenir des versions différentes de la date et l'heure, en fonction de la localisation : [b]%Ec[/b] [table][row][col] [/col][col]Une représentation différente de la date et l'heure.[/col][/row][/table] [b]%EC[/b] [table][row][col] [/col][col]Le nom de l'année de base (période) dans la représentation locale alternative.[/col][/row][/table] [b]%Ex[/b] [table][row][col] [/col][col]Une autre représentation de la date.[/col][/row][/table] [b]%EX[/b] [table][row][col] [/col][col]Une autre représentation de l'heure.[/col][/row][/table] [b]%Ey[/b] [table][row][col] [/col][col]Le décalage (en année) par rapport à l'année %EC dans la représentation locale alternative.[/col][/row][/table] [b]%EY[/b] [table][row][col] [/col][col]La représentation complète de l'année.[/col][/row][/table] Le modificateur O indique que les saisies numériques peuvent être effectuées dans un format différent, dépendant de la localisation. [b]%Od or %Oe[/b] [table][row][col] [/col][col]Le jour du mois. Les zéros en tête sont permis mais pas obligatoires.[/col][/row][/table] [b]%OH[/b] [table][row][col] [/col][col]L'heure (sur 24 heures).[/col][/row][/table] [b]%OI[/b] [table][row][col] [/col][col]L'heure (sur 12 heures).[/col][/row][/table] [b]%Om[/b] [table][row][col] [/col][col]Le numéro du mois.[/col][/row][/table] [b]%OM[/b] [table][row][col] [/col][col]Les minutes.[/col][/row][/table] [b]%OS[/b] [table][row][col] [/col][col]Les secondes.[/col][/row][/table] [b]%OU[/b] [table][row][col] [/col][col]Le numéro de la semaine.[/col][/row][/table] [b]%Ow[/b] [table][row][col] [/col][col]Numéro du jour dans la semaine, le dimanche étant zéro.[/col][/row][/table] [b]%OW[/b] [table][row][col] [/col][col]Le numéro du jour de la semaine, en commençant le lundi.[/col][/row][/table] [b]%Oy[/b] [table][row][col] [/col][col]L'année (ou décalage par rapport à %C).[/col][/row][/table] Les champs de la structure [i]tm[/i] définie dans [i]
[/i] sont : [table][row][col] [/col][col] .nf .ne 12 .ta 8n 16n 32n struct tm { int tm_sec; /* secondes */ int tm_min; /* minutes */ int tm_hour; /* heures */ int tm_mday; /* jour du mois */ int tm_mon; /* mois */ int tm_year; /* année */ int tm_wday; /* jour de la semaine */ int tm_yday; /* jour de l'année */ int tm_isdst; /* décalage été/hiver */ }; .ta .fi[/col][/row][/table] [size=18] [b]Valeur renvoyée[/b] [/size] La fonction [b]strptime()[/b] renvoie un pointeur sur le premier caractère de la chaîne [i]buf[/i] n'ayant pas été traité. Dans le cas où la chaîne de saisie est plus longue que ce que réclame le format, la valeur renvoyée pointe juste après le dernier caractère d'entrée ayant été analysé. Si toute la chaîne a été traitée, le pointeur est dirigé sur le caractère NUL en fin de chaîne. Si [b]strptime ()[/b] n'arrive pas à effectuer toutes les conversions, il renvoie [b]NULL[/b]. [size=18] [b]Conformité[/b] [/size] XPG4, SUSv2, POSIX 1003.1-2001. [size=18] [b]Exemple[/b] [/size] L'exemple suivant montre l'utilisation de [b]strptime()[/b] et [b]strftime()[/b]. .nf .ne 12 .ta 8n 16n #include
#include
int main() { struct tm tm; char buf[255]; strptime("2001-11-12 18:31:01", "%Y-%m-%d %H:%M:%S", &tm); strftime(buf, sizeof(buf), "%d %b %Y %H:%M", &tm); puts(buf); return 0; } .ta .fi [size=18] [b]Extensions gnu[/b] [/size] Pour des raisons de symétrie, la GlibC essaye d'offrie pour [b]strptime[/b] les mêmes caractères de formatage que ceux de [b]strftime.[/b] (Dans la plupart des cas, les champs sont lus mais aucun membre de [i]tm[/i] n'est modifié). Ceci conduit à : [b]%F[/b] [table][row][col] [/col][col]Équivalent à [b]%Y-%m-%d[/b], le format ISO 8601 pour la date.[/col][/row][/table] [b]%g[/b] [table][row][col] [/col][col]L'année correspondant au numéro de semaine ISO, sans le siècle (0-99).[/col][/row][/table] [b]%G[/b] [table][row][col] [/col][col]L'année correspondant au numéro de semaine ISO (par exemple 1991).[/col][/row][/table] [b]%u[/b] [table][row][col] [/col][col]Le numéro du jour de la semaine (1-7, lundi valant 1).[/col][/row][/table] [b]%V[/b] [table][row][col] [/col][col]Le numéro de semaine ISO 8601:1988 (1-53). Si la semaine (commençant lundi) contenant le 1er janvier a quatre jours ou plus de la nouvelle année, elle est comptée en semaine 1. Sinon elle est considérée comme dernière semaine de l'année précédente, et c'est la suivante qui est la semaine 1.[/col][/row][/table] [b]%z[/b] [table][row][col] [/col][col]Spécification standard RFC-822/ISO 8601 pour le fuseau horaire.[/col][/row][/table] [b]%Z[/b] [table][row][col] [/col][col]Le nom du fuseau horaire.[/col][/row][/table] De même, à cause des extensions GNU de [i]strftime[/i], %k est accepté en synonyme de %H, et %l est accepté comme synonyme de %I, et %P en synonyme de %p. Enfin, [b]%s[/b] [table][row][col] [/col][col]Le nombre de secondes depuis le 1er janvier 1970 à Oh TU. Les secondes de rattrapage ne sont pas comptées sauf si un support spécifique est disponible.[/col][/row][/table] L'implémentation de la GlibC n'impose pas la présence de caractères blancs entre deux descripteurs de champs. [size=18] [b]Notes[/b] [/size] En principe cette fonction n'initialise pas [b]tm[/b], mais n'y stocke que les valeurs lues. Ceci signifie que le contenu de [b]tm[/b] doit être initialisé avant l'appel. Les détails diffèrent suivant les systèmes Unix. L'implémentation de la bibliothèque C Gnu ne modifie pas les champs non mentionnés explicitement, sauf [b]tm_wday ,[/b] et [b]tm_yday[/b] qui sont recalculés si un champ d'année, de mois ou de jour est modifié. Cette fonction n'est disponible que dans les versions de bibliothèque depuis la 4.6.8. Les bibliothèques Linux libc4 et libc5 incluaient toujours le prototype de cette fonction, la bibliothèque GlibC 2 ne fournit le prototype que si les constantes _XOPEN_SOURCE ou _GNU_SOURCE sont définies. Les caractères de modification locale E et O sont acceptés depuis la bibliothèque 5.4.13. La conversion 'y' est toujours considérée comme appartenant au vingtième siècle dans les libc4 et libc5. Elle est prise dans l'intervalle 1950-2049 par la GlibC 2.0, et 1969-2068 par la GlibC 2.1. [size=18] [b]Voir aussi[/b] [/size] [b]time (2),[/b] [b]scanf (3),[/b] [b]setlocale (3),[/b] [b]strftime (3)[/b] [size=18] [b]Traduction[/b] [/size] Christophe Blaess, 1996-2003.
Fichier
Forum
-
Derniers messages
Bavardages
Aujourd'hui, je rénove ou je construis ^^
Software
problème sur windows 10
Réseaux et Télécom
Administrateur Réseau - Cisco
Réseaux et Télécom
Problème wifi (POE)
Software
Postfix - Need help
Bavardages
Oh râge oh désespoir !
Programmation
Enregistrement client et envoi mail
Software
SÉCURITÉ MACBOOK
Hardware
conseil matos réseau?
Hardware
nVidia Shield Android TV
Actualités
-
Archives
Matériel
Nvidia prévient d'une pénurie de GPU ce trimestre, avec une reprise début 2025
Les Technos
Les Technos #469 : Un jour sans fin
Jeux Vidéos
Test Farming Simulator 25 (PS5) - Des innovations intéressantes mais des performances à revoir
Matériel
Qualcomm souhaite réduire davantage les prix des PC Windows basés sur ARM
Tablettes
Finalement, Google préparerait une nouvelle tablette mais la Pixel Tablet 2 serait abandonnée
Ada
CSS
Cobol
CPP
HTML
Fortran
Java
JavaScript
Pascal
Perl
PHP
Python
SQL
VB
XML
Anon URL
DailyMotion
eBay
Flickr
FLV
Google Video
Google Maps
Metacafe
MP3
SeeqPod
Veoh
Yahoo Video
YouTube
6px
8px
10px
12px
14px
16px
18px
Informaticien.be
- © 2002-2024
Akretio
SPRL - Generated via
Kelare
The Akretio Network:
Akretio
-
Freedelity
-
KelCommerce
-
Votre publicité sur informaticien.be ?