【发布时间】:2011-03-21 08:52:16
【问题描述】:
我有字符串 2010-07-26 18:37:12,我想将其转换为日期格式,以便我可以将其与其他字符串进行比较并检查日期是否 (2010-07-26 18:37:12)是否更早。
谁能建议将这个字符串转换为日期的方法?
【问题讨论】:
-
什么编程语言/环境?
-
我已经厌倦了这些 Unix 时间(戳)问题。
标签: unix
我有字符串 2010-07-26 18:37:12,我想将其转换为日期格式,以便我可以将其与其他字符串进行比较并检查日期是否 (2010-07-26 18:37:12)是否更早。
谁能建议将这个字符串转换为日期的方法?
【问题讨论】:
标签: unix
strptime 函数就是你想要的
man strptime
你的例子
struct tm stm;
strptime(string, "%Y-%m-%d %H:%M:%s", &stm);
【讨论】:
您展示的 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() 也存在时区问题——尤其是命名时区而不是纯数字偏移量。
【讨论】: