如何在java中更改sql日期格式

如何在java中更改sql日期格式,java,swing,sqlite,jdbc,jcalendar,Java,Swing,Sqlite,Jdbc,Jcalendar,我使用JDBC连接和javaswingui,在那里我使用了sqlitedb。 这里我有一个java组件,它是拾取日期的jCalender&我将日期拾取到字符串中 首先我将字符串转换为java.util.date,然后我将java.util.date转换为java.sql.date,但是我的日期字符串格式是“dd/MM/YYYY”& 然后 DateFormat格式=新的SimpleDateFormat(“dd/MM/YYYY”,Locale.ENGLISH) 我设置了上面写的具体日期格式。但在日期

我使用JDBC连接和javaswingui,在那里我使用了sqlitedb。
这里我有一个java组件,它是拾取日期的jCalender&我将日期拾取到字符串中


首先我将字符串转换为java.util.date,然后我将java.util.date转换为java.sql.date,但是我的日期字符串格式是“dd/MM/YYYY”&

然后
DateFormat格式=新的SimpleDateFormat(“dd/MM/YYYY”,Locale.ENGLISH)

我设置了上面写的具体日期格式。但在日期之间搜索记录时仍然存在问题

这里我附上了一份代码plz GYZ的副本,帮助我这是非常重要的




假设您的记录\u date是数据库中的SQL日期(而不是一些varchar),请使用适当的

注意,随着Java7的引入,对closed-in-finally的整个try/catch/check变得更加容易


如果您的日期是一个varchar,您需要颠倒字段的顺序以某种方式提前设置最重要的字段-
yyy-MM-dd
。只有这样,
字符串
/
VARCHAR
的结果才会像字符串表示法那样进行比较。

“但在日期之间搜索记录时仍然存在问题。”
--您需要对此进行详细说明。如果我上面的评论不完全清楚,这意味着您需要更详细地描述您可能看到的问题,包括发布任何和所有错误或异常消息,和/或详细描述您可能遇到的任何和所有错误行为。本质上,您不在乎,
java.util/sql.Date
只是一个容器类,表示自unix时代以来的毫秒数,它没有“格式”。只需使用
PreparedStatement
并将
Date
对象直接绑定到查询,然后让驱动程序处理它
    String from_date = ((JTextField) txt_bilty_date_start.getDateEditor().getUiComponent()).getText();
    String to_date = ((JTextField) txt_bilty_date_end.getDateEditor().getUiComponent()).getText();

    DateFormat format = new SimpleDateFormat("dd/MM/YYYY", Locale.ENGLISH);
    Date date1 = format.parse(from_date);
    Date date2= format.parse(to_date);

    java.sql.Date sqlDate1 = new java.sql.Date(date1.getTime());
    java.sql.Date sqlDate2 = new java.sql.Date(date2.getTime());

    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/YYYY");

    System.out.println("\t\tafter change date");
    System.out.println(sdf.format(sqlDate1));
    System.out.println(sdf.format(sqlDate2));

    String sql = "select * from employee where record_date BETWEEN '"+sdf.format(sqlDate1)+"' AND '"+sdf.format(sqlDate2)+"' ";

    pst=conn.prepareStatement(sql2);
    rs = pst.executeQuery();
    tbl_employee.setModel(DbUtils.resultSetToTableModel(rs));
String sql = "select * from employee where record_date BETWEEN ? AND ?";
pst=conn.prepareStatement(sql2);
pst.setDate(1, sqlDate1);
pst.setDate(2, sqlDate2);
rs = pst.executeQuery();