如何在java.sql.Date上截断时间?

时间:2015-03-12 12:28:15

标签: java date

我有以下代码:

String dateCompleted = "4/24/2009 2:38:44 PM";
DateFormat format = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");
java.util.Date tempDate = format.parse(dateCompleted);
java.sql.Date completionDate = new java.sql.Date(tempDate.getTime());

我想将completionDate与Oracle数据库表中不包含时间的DATE值进行比较。例如,我想将其与'2009/4/24/2009'并且它返回true,因为这些日期是相同的。

如何从变量中截断时间值以将其与数据库值进行比较?提前谢谢!

4 个答案:

答案 0 :(得分:4)

Apache Commons Lang有一个可用于此的日期截断方法:

java.util.Date truncated = DateUtils.truncate(tempDate, Calendar.DATE);

请参阅DateUtils.truncate的Javadocs以获取更多详细信息。

答案 1 :(得分:1)

定义SimpleDateFormat对象,如下所示,

DateFormat format=new SimpleDateFormat("MM/dd/YYYY");

答案 2 :(得分:0)

private final Pattern timeSection = Pattern.compile("\\s+.+?:.*");

String stripTime(String dateStringWithTime){
   Matcher m = timeSection.matcher(dateStringWithTime);
   if(m.find()){
      return m.replaceAll("");
   }
   return dateStringWithTime;
}

答案 3 :(得分:0)

试试这个:

String dateCompleted = "4/24/2009 2:38:44 PM";
DateFormat format = new SimpleDateFormat("MM/dd/yyyy"); 
java.util.Date tempDate = format.parse(dateCompleted);
java.sql.Date completionDate = new java.sql.Date(tempDate.getTime());

与@sgpalit提到的相同。