Проблема с strptime () -% p не учитывается - PullRequest
3 голосов
/ 06 августа 2010

Я пытаюсь преобразовать дату в определенный формат, используя strptime, и я понял, что информация об AM / PM потеряна.Не уверен почему.

Вот код.

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;

Кто-нибудь может сказать мне, для чего нужен спецификатор %p в strptime?

Спасибозаранее, AJ

Ответы [ 2 ]

5 голосов
/ 06 августа 2010

Проблема здесь с %H, который будет читать час в формате 24-часовой и игнорировать AM / PM.Если вы хотите прочитать час в формате 12-часовой и использовать AM / PM, используйте %I вместо %H.

. Вы можете обратиться к руководству здесь .

0 голосов
/ 06 августа 2010

С этого сайта :

% p = эквивалент локали am или pm

...