有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在java上缩短时间。sql。日期

我有以下代码:

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数据库表中不包含时间的日期值进行比较。例如,我想将其与值“4/24/2009”进行比较,并使其返回true,因为这些日期是相同的

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


共 (4) 个答案

  1. # 1 楼答案

    定义SimpleDataFormat对象,如下所示:

    DateFormat format=new SimpleDateFormat("MM/dd/YYYY");
    
  2. # 2 楼答案

    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. # 3 楼答案

    Apache Commons Lang有一种日期截断方法,可用于:

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

    有关更多详细信息,请参阅^{}的Javadocs

  4. # 4 楼答案

    试试这个:

    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提到的相同