UNIX的字符串到日期转换?

时间:2010-07-26 23:59:46

标签: unix

我有字符串2010-07-26 18:37:12我希望将其转换为日期格式,以便我可以将其与其他字符串进行比较并检查日期是否存在(2010-07-26 18:37:12)是早还是不。

有人可以建议将此字符串转换为日期吗?

2 个答案:

答案 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()也存在时区问题 - 尤其是命名时区而不是纯数字偏移。