2010-08-06 86 views
3

我试图用strptime来转换特定格式的日期,并且我意识到关于AM/PM的信息丢失了。不知道为什么。strptime问题() - %p没有考虑到

这是代码。

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; 

任何人能告诉我什么是具有strptime%p符的目的是什么?

由于提前, AJ

回答

5

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

您可以参考手册here

0

this site

%P =区域设置的等效A.M或下午的