【问题标题】:String to Date conversion for UNIX?UNIX的字符串到日期转换?
【发布时间】:2011-03-21 08:52:16
【问题描述】:

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

谁能建议将这个字符串转换为日期的方法?

【问题讨论】:

标签: unix


【解决方案1】:

strptime 函数就是你想要的

man strptime

你的例子

struct tm stm;
strptime(string, "%Y-%m-%d %H:%M:%s", &stm);

【讨论】:

    【解决方案2】:

    您展示的 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() 也存在时区问题——尤其是命名时区而不是纯数字偏移量。

    【讨论】:

      猜你喜欢
      • 2019-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多