Tag: temporal

如何从文本中检索各种日期和时间值

我想从一组字符串中检索日期和其他时间实体。 这可以在不解析JAVA中的日期字符串的情况下完成,因为大多数解析器处理有限范围的输入模式。 但输入是一个手动输入,在这里,因此含糊不清。 输入可以是: 9月12日| 3月中旬| 12. 2013年9月 9月12日| 9月12日| 2013 9月13日| 9月12日,2013年2月12日 我在Java中找到了许多关于查找日期的答案,但是大多数答案并没有处理如此巨大的输入模式。 我已经尝试使用SimpleDateFormat类并使用一些parse()函数来检查解析函数是否中断,这意味着它不是一个日期。 我试过使用regex但我不确定它是否适合这种情况。 我还使用ClearNLP来注释日期,但它没有给出可靠的注释集。 获得这些价值观的最接近方法可能是使用如下所述Chain of responsibility 。 是否有一个库具有一组日期模式。 我可以用那个吗?

Java的时态库

我正在寻找Java的时态库,即允许存储相同概念的多个历史版本的库。 我正在寻找一个具有API的库,可以执行以下操作: Instant i1 = Instant.valueOf(“2010-01-01”); Instant i2 = Instant.valueOf(“2010-01-02”); Attribute a = …. a.setValue(i1, “String as of 2010-01-01”); a.setValue(i2, “String as of 2010-01-02”); 你可以在马丁福勒的好文章中找到关于时间问题的讨论 我找到的一个库是JTemporal ,这对我来说似乎很好,但它并不完整,缺乏对Hibernate持久性的支持。 我也想支持时间集,即在精确的时间点定义的集合。 JTemporal这样做,但坚持TemporalSet并不容易。

查看当前时间是否在当前Java的特定时间范围内

我确信这在1000个不同的地方完成了1000次。 问题是我想知道是否有更好的/标准/更快的方法来检查当前“时间”是否在以hh:mm:ss格式给出的两个时间值之间。 例如,我的大型业务逻辑不应该在18:00:00 and 18:30:00之间运行。 所以这就是我的想法: public static boolean isCurrentTimeBetween(String starthhmmss, String endhhmmss) throws ParseException{ DateFormat hhmmssFormat = new SimpleDateFormat(“yyyyMMddhh:mm:ss”); Date now = new Date(); String yyyMMdd = hhmmssFormat.format(now).substring(0, 8); return(hhmmssFormat.parse(yyyMMdd+starthhmmss).before(now) && hhmmssFormat.parse(yyyMMdd+endhhmmss).after(now)); } 示例测试用例: String doNotRunBetween=”18:00:00,18:30:00″;//read from props file String[] hhmmss = downTime.split(“,”); if(isCurrentTimeBetween(hhmmss[0], hhmmss[1])){ System.out.println(“NOT OK TO RUN”); }else{ System.out.println(“OK TO RUN”); } […]