【问题标题】:Is there any java library to check if given Date meets criteria given in String?是否有任何 java 库来检查给定的日期是否符合字符串中给定的条件?
【发布时间】:2012-04-01 00:04:27
【问题描述】:

我正在寻找一个可以检查给定日期是否符合字符串中给定条件的 java 库,例如:

  • YYYY.MM.DD - 特定日期,例如。 2002.04.01.
  • YYYY.MM.DD-YYYY.MM.DD - 范围内的天数,例如。 2002.02.01-2002.11.20.
  • DD - 月份中的某天,例如。 04(每月的第四天)。
  • DD-DD - 月份中的天数范围,例如。 04-15(每月四号到十五号)
  • DAY - 星期几,可能的值:MON、TUE、WED、THU、FRI、SAT、SUN。
  • DAY-DAY - 一周中的天数范围,例如。周一至周五(工作日)。
  • HH24:MI-HH24:MI - 具有分钟精度的时间范围,例如。 02:15-17:30。

界面应该是这样的:

public boolean checkDate(Date testDate, String criteria);

【问题讨论】:

  • 你打算如何使用它?你的意见是什么?
  • if (DateCheckLibrary.checkDate(myDate, "02:15-17:30")) System.out.println("cool");
  • 我认为即使你找到了一个库,你也可能不得不使用一个格式字符串。简单的事情是使用 Peter Lawrey 建议的SimpleDateFormat

标签: java date


【解决方案1】:

Java本身有丰富的Date和calendar API,你可以在google上查看各种例子。

这是其中之一, http://www.vogella.de/articles/JavaDateTimeAPI/article.html

同时检查日历 API http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html

对于日期 API 检查 http://docs.oracle.com/javase/1.5.0/docs/api/java/sql/Date.html

【讨论】:

  • 我正在寻找更复杂的解决方案。
  • 上面提到的事情可以用JAVA Date API来完成,请问您还需要做哪些复杂的操作?
  • 我希望允许用户以上述任何格式输入时间段,并通过调用 checkDate(Date testDate, String criteria) 或类似的方法检查某个 Date 对象是否在该时间段内
  • Java 5.0 大约在 4 年前进入 EOL,并没有阻止人们使用它。 ;)
【解决方案2】:

我会将内置的 SimpleDateFormat 与 Calender 一起使用,或者您可以使用 JodaTime。

【讨论】:

  • SimpleDateFormat with Calendar 或 Joda time 没有此功能。
  • 您需要自己编写一些代码,但不多。 ;)
  • 懒惰是进步之母 :)
猜你喜欢
  • 1970-01-01
  • 2012-04-27
  • 1970-01-01
  • 2018-09-12
  • 2015-11-21
  • 2018-06-07
  • 1970-01-01
  • 1970-01-01
  • 2011-06-23
相关资源
最近更新 更多