C++ strptime()的问题-%p未被考虑在内

C++ strptime()的问题-%p未被考虑在内,c++,parsing,datetime,strptime,C++,Parsing,Datetime,Strptime,我试图使用strtime将日期转换为特定格式,我意识到有关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)

我试图使用
strtime
将日期转换为特定格式,我意识到有关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;
struct;
strtime(“2007年4月18日星期三下午4:28:22”,%a%m/%d/%Y%H:%m:%S%p”,&t);
标准::cout来自:

%p=区域设置的a.m或p.m等效值


这里的问题是
%H
,它将以24小时格式读取小时,并忽略AM/PM。如果要以12小时格式读取小时,并使用AM/PM,请使用
%I
代替
%H

你可以参考手册