有 Java 编程相关的问题?

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

JAVAsql。日期格式错误

我有这个密码

public static void main(String[] args) throws ParseException {
    SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
    String parsed = "15/07/2015";
    java.util.Date date = format.parse(parsed);
    java.sql.Date sql = new java.sql.Date(date.getTime());
    System.out.println(sql);
}

我试图将日期格式作为15/07/2015插入数据库。然而,每次它都以2015-07-15的形式向我提供输出。我不明白为什么会这样

  • 是因为java.sql.Date的默认日期格式是yyyy-MM-dd
  • 或者,在解析成java.sql.Date之后,我需要设置不同的日期格式吗

任何建议或指导都会有所帮助。谢谢


共 (2) 个答案

  1. # 1 楼答案

    java.util.Date一样,java.sql.Date存储未格式化的日期值。当你把它传递给System.out.println时,它会被调用toString()^{} method on ^{}以“yyyy-mm-dd”格式打印日期

    你不需要设置任何日期格式。如果需要Java中的特定格式,可以使用SimpleDateFormat对象将其格式化为String;ajava.sql.Date是ajava.util.Date。但是您可以直接将java.sql.Date传递到数据库;这就是它的设计。很可能您的数据库具有某种转换功能,可以像Java一样格式化和解析日期值

  2. # 2 楼答案

    您正在使用java.sql.Date对应于SQL DATE,这意味着它将以year-month-date的格式存储。 不能设置日期格式。 如果希望它的格式为2015-07-15,那么必须使用日期格式化程序将日期转换为字符串

    SimpleDateFormat format1 = new SimpleDateFormat("dd-MM-yyyy");
    String date1 = format1.format(date);   //date is your date from db
    

    此处date1将采用所需格式

    步骤1)在数据库中将日期存储为仅日期

      java.util.Date date = format.parse(parsed);
      // code to store date to db
    

    第2步)向^{显示数据时

    从数据库中获取日期

    date = getdatefromdatabase(); // method like this
    

    然后使用日期格式化程序

       SimpleDateFormat format1 = new SimpleDateFormat("dd-MM-yyyy");
       String date1 = format1.format(date);   //date is your date from db
    

    将此date1发送到jtable