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

AMM*_*AMM 3 c++ datetime parsing strptime

我正在尝试使用特定格式转换日期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;
Run Code Online (Sandbox Code Playgroud)

谁能告诉我什么是具有目的%p的符strptime

在此先感谢,AJ

cod*_*ict 5

这里的问题是%H,它将以24小时格式读取小时并忽略上午/下午.如果您想以12小时格式阅读小时并使用AM/PM %I代替%H.

您可以在这里参考手册.