2010-07-26 31 views
1

我有字符串2010-07-26 18:37:12我想将其转换为日期格式,以便我可以将其与其他字符串进行比较并检查日期(2010-07-26 18:37:12)是否更早或没有。UNIX的字符串日期转换?

任何人都可以建议将此字符串转换为日期的方式吗?

+0

什么编程语言/环境? – bakkal 2010-07-27 00:04:52

+0

最可能是C,因此是UNIX。 – 2010-07-27 00:05:30

+1

如果是这样的话:http://stackoverflow.com/questions/1002542/how-to-convert-datetime-to-unix-timestamp-in-c – bakkal 2010-07-27 00:07:11

回答

2

的strptime功能是你想要的

man strptime 

对于示例

struct tm stm; 
strptime(string, "%Y-%m-%d %H:%M:%s", &stm); 
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()在时区方面也存在一些问题 - 尤其是命名时区而不是纯数字偏移。