【问题标题】:Smart date interpretation [closed]智能日期解释[关闭]
【发布时间】:2009-07-23 00:36:47
【问题描述】:

我不记得我使用的是哪个应用程序,但我记得它具有非常简洁的日期解析/解释。

例如,您可以输入“两天前”或“明天”,它会理解。

有什么图书馆可以推荐吗?如果可以从 Python 中使用,则可以加分。

【问题讨论】:

标签: python date-parsing


【解决方案1】:

也许您正在考虑 PHP 的 strtotime() 函数,Swiss Army Knife of date parsing

伙计,我在strtotime() 之前做了什么。哦,我知道,我有一个 482 行函数来解析日期格式并返回时间戳。我仍然不能做很酷的事情。就像今晚一样,我需要弄清楚感恩节是什么时候在美国。我知道那是十一月的第四个星期四。所以,我从一些数学知识开始,检查 11 月 1 日是一周中的哪一天。这一切都让我头疼。所以,我只是为了好玩。

strtotime("thursday, november ".date("Y")." + 3 weeks")

这给了我感恩节。太棒了。

遗憾的是,似乎没有 Python 等价物。我能找到的最接近的是dateutil.parser 模块。

【讨论】:

  • 您可以在 python 中运行类似以下内容: [item for item in list(rrule.rrule(rrule.MONTHLY,count=12,byweekday=rrule.TH(4),dtstart=datetime. date.today())) if item.month == 11][0].strftime('%Y-%m-%d')。这将计算一年后每个月的第四个星期四的日期。然后,您选择月份为 11 月的那个,并且您有下一个感恩节的日期。
【解决方案2】:

请参阅我的SO answer 以获取三个 Python 日期解析库的链接。其中最常用的一种是python-dateutils,但遗憾的是它不能处理所有格式。

【讨论】:

    【解决方案3】:

    我见过的简单的python是here

    它使用 pyparsing 并且只是一个小脚本,但它可以满足您的要求。但是,如果需要,它的优点是很容易扩展和改进。随着解析的进行,Pyparsing 相对容易学习。

    【讨论】:

      猜你喜欢
      • 2011-05-12
      • 1970-01-01
      • 2010-11-09
      • 1970-01-01
      • 2021-09-12
      • 1970-01-01
      • 2011-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多