【问题标题】:The Best Way to Parse Dates from an Email从电子邮件中解析日期的最佳方法
【发布时间】:2010-04-13 05:18:25
【问题描述】:

我目前正在开发一个可以从电子邮件中解析日期的应用程序 - 即从电子邮件中提取时间和日期(类似于 gmail)。

目前我在 php 中执行此操作,但这有点笨拙。

最好的语言是什么?是否有任何现有的开源解决方案?

【问题讨论】:

    标签: email parsing date


    【解决方案1】:

    我认为 PHP 与任何其他语言一样强大。我们可以查看您正在使用的代码,以便我们提出改进建议吗?我会使用正则表达式...你只需要一个支持多种格式的好表达式。

    【讨论】:

      【解决方案2】:

      我在我的电子邮件客户端中所做的是提取所有由空格分隔的标记,然后使用启发式方法对它们进行迭代以确定如何对每个标记进行分类。例如,如果令牌中有一个“:”字符,那么我将其视为时间,将被解析为##:##:##。如果它有'。'或“-”将其视为日/月/年组合,您必须决定哪一端是哪一端……可以是任意数量的组合。如果令牌以字母开头(即 isalpha(*string)),那么您将进行月份名称查找。如果它是一个数字,它可能是日期或年份......根据长度以及您是否已经有一个现有的日期或年份等来决定。如果令牌以“-”或“+”开头,那么它是一个时区,相应地解析。

      似乎在该领域工作得很好,我的电子邮件客户端已经存在了 10 年左右。我的代码是 C++,但你可以很容易地用 PHP 编写相同的代码,它不是特别特定于语言的。

      【讨论】:

        【解决方案3】:

        如果您指的是发送(或接收)的日期,您是从邮件标题(例如“日期:”标题)中检索它们并且它们具有标准日期格式,请参阅RFC 2822

        无论如何,如果你使用javamail(它现在是开源的)你可以得到发送日期

        Date sentDate = mail.getSentDate();
        

        【讨论】:

          猜你喜欢
          • 2011-06-10
          • 1970-01-01
          • 2010-12-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-01-28
          • 1970-01-01
          相关资源
          最近更新 更多