【问题标题】:regex for date in javajava中日期的正则表达式
【发布时间】:2010-04-27 18:04:32
【问题描述】:

谁能帮我在java中字符串“Feb. 26, 2009 8:08 AM PST”的正则表达式是什么????

【问题讨论】:

    标签: java regex date


    【解决方案1】:

    使用SimpleDateFormat 而不是使用正则表达式。阅读the tutorial了解更多信息。

    UPD:正则表达式看起来像:"(Jan|Feb|Mar).*PST" 其中月份列表应包含全部 12 个(而不是我的示例中的 3 个)。但它非常非常不可靠。

    【讨论】:

    • @Freiheit:每次我看到有关 java 中日期的问题时,我都在等待答案/评论,例如“不要忘记 java 日期已损坏,请改用 Joda Time”。据我了解,我并不孤单。
    【解决方案2】:

    SimpleDateFormat 使用 parse 在 Java 中可能会更简单。请参见下面的示例。 Javadoc 显示了模式中每个字母的含义。

    DateFormat formatter = new SimpleDateFormat("MMM. dd, YYYY h:mm a Z");
    Date date = null;
    try {
       date = formatter.parse(datestring);
    } catch(ParseException pe) {
       throw new IllegalArguementException(datestring + " is not properly formatted!", pe);
    }
    

    【讨论】:

      【解决方案3】:

      是的,但问题是我试图提取的日期嵌套在一些文本中。所以我一直在寻找一个正则表达式,并将它与 java 中的字符串拆分方法一起使用,以从特定字符串中提取日期。

      【讨论】:

      • 是任意日期吗?任意时区?您对日期的保证越多,正则表达式就越简单。
      【解决方案4】:

      它实际上是一个简单的日期,只是上面的格式。我只需要从一个巨大的文本文档中匹配日期,然后将它们提取出来。

      str.split("上述日期的正则表达式");

      【讨论】:

      • @sahmed - 在您可以在任何地方发布 cmets 之前需要一点(声誉),但您应该能够更新自己的问题并对其发表评论 - 看看吧!
      【解决方案5】:

      我认为我的方法是错误的。如果我使用 str.split("regex for date");从文本中提取所有日期。它不会这样做,但它会保留其他文本并在日期发生时拆分文档。

      我该如何做我打算做的事情,即从文本中提取所有日期,最好放在一个与上述日期格式相对应的数组中??

      【讨论】:

      • 查看 Java API 中的 PatternMatcher。那些会做你想做的。另外,考虑使用 cmets 并编辑您的原始帖子。这将是一个理想的编辑。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-17
      • 2020-08-11
      • 1970-01-01
      • 2012-03-08
      • 2014-04-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多