Question

Quelle est la fonction C dois-je appeler pour obtenir une date et l'heure formatées pour les paramètres régionaux où le programme est en cours d'exécution?

Je pose cette question parce que je l'ai rencontré un problème en utilisant l'API démon ClamAV. La commande VERSION renvoie la date et l'heure des dernières définitions de virus, mais le code utilise un appel à ctime pour le formater. Pour autant que je peux dire ctime ne forme pas le datetime selon les paramètres locaux et utilise les abréviations des Anglais pour les jours de la semaine et le mois dans la chaîne retournée. Cela provoque des problèmes que mon programme Java qui utilise l'API ClamAV ne respectent les paramètres régionaux en cours et attend donc le jour de la semaine et le nom mois pour avoir les abréviations locales.

Le format datetime devrait être dans le même format que celui produit par ctime :

  

Www Mmm dd hh: mm: ss aaaa

     

Où Www est le jour de la semaine, le mois Mmm en lettres, dd le jour du mois, hh: mm:. Ss temps, et aaaa l'année

Je pourrais réécrire le programme Java pour assumer toujours les dates en anglais mais je serais plus heureux de soumettre un patch pour ClamAV comme il semble être un bug de leur côté pour moi.

Était-ce utile?

La solution

strftime("%c", ... devrait vous donner la date préférée et la représentation du temps pour les paramètres régionaux en cours. Ou (toujours avec strftime), vous pouvez imiter le format de ctime mais avec %b pour abréviation mois courant locale, %a pour abréviation en semaine de courant locale, et ainsi de suite.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top