我有字符串2010-07-26 18:37:12我希望将其转换为日期格式,以便我可以将其与其他字符串进行比较并检查日期是否存在(2010-07-26 18:37:12)是早还是不。
有人可以建议将此字符串转换为日期吗?
答案 0 :(得分:2)
strptime功能就是你想要的
man strptime
为您的例子
struct tm stm;
strptime(string, "%Y-%m-%d %H:%M:%s", &stm);
答案 1 :(得分:0)
您显示的ISO 8601表示法的优点在于两个日期之间的字符串比较会告诉您相对订单。只要您需要比较的所有日期都是AD(或CE)而不是BC(或BCE)并在同一时区表示,那么它就是微不足道的:
2010-07-26 18:37:12 > 2001-10-31 15:36:21
2010-07-26 18:37:12 < 2010-12-25 00:00:00
如果您需要处理其他日期格式,那么strptime()
就是您的朋友。
我有一个程序(想象力地命名为 strptime )将完成这项工作(请参阅我的个人资料与我联系);可能还有其他工具可以做到这一点。但是,即使strptime()
也存在时区问题 - 尤其是命名时区而不是纯数字偏移。