2010-08-06 7 views
3

Je suis en train de convertir une date dans un format particulier à l'aide strptime, et je compris que les informations sur AM/PM est perdu. Pas certain de pourquoi.problème avec strptime() -% p ne sont pas prises en compte

Voici le code.

struct tm t; 
strptime("Wed 4/18/2007 4:28:22 PM", "%a %m/%d/%Y %H:%M:%S %p", &t); 
std::cout<<t.tm_hour<<endl; 
strptime("Wed 4/18/2007 4:28:22 AM", "%a %m/%d/%Y %H:%M:%S %p", &t); 
std::cout<<t.tm_hour<<endl; 

Quelqu'un peut-il me dire quel est le but d'avoir le spécificateur %p dans strptime?

Merci à l'avance, AJ

Répondre

5

Le problème est ici avec %H, qui va lire l'heure en format 24 heures et ignorer AM/PM. Si vous voulez lire l'heure en 12 heures et le format utiliser l'utilisation AM/PM %I à la place de %H.

Vous pouvez consulter le here manuel.

0

De this site:

% p = équivalent de la locale de a.m ou p.m.

Questions connexes