Pergunta

Estou tentando converter uma data em um determinado formato usando strptime, e percebi que as informações sobre AM/PM estão perdidas. Não sei por que.

Aqui está o código.

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;

Alguém pode me dizer qual é o propósito de ter o %p especificador em strptime?

Obrigado antecipadamente, AJ

Foi útil?

Solução

O problema aqui está com %H, que lerá a hora em 24 horas formato e ignore AM/PM. Se você quiser ler a hora 12 horas formato e utilizar AM/PM %I no lugar de %H.

Você pode se referir ao manual aqui.

Outras dicas

A partir de esse site:

%p = o equivalente do local de AM ou PM

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top