Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.sql.Date格式错误_Java_Date - Fatal编程技术网

java.sql.Date格式错误

java.sql.Date格式错误,java,date,Java,Date,我有这个密码 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

我有这个密码

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
    之后,是否需要设置不同的日期格式

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

A
java.sql.Date
java.util.Date
一样,存储了一个未格式化的日期值。当您将其传递给
System.out.println
时,将对其调用
toString()
。以“yyyy-mm-dd”格式打印日期


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

A
Java.sql.date
,像A
Java.util.date
,存储未格式化的日期值。当您将其传递给
System.out.println
时,将对其调用
toString()
。以“yyyy-mm-dd”格式打印日期


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

您使用的是
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)在向
JTable显示数据时

从数据库中获取日期

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
您正在使用的
java.sql.Date
对应于
sql日期
,这意味着它将以
年-月日期
的格式存储。 不能设置日期格式。 如果希望其格式为
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)在向
JTable显示数据时

从数据库中获取日期

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

您不是在数据库中存储日期字符串,而是在存储日期。是的,您是对的。这是否意味着我将无法以dd-MM-yyyy的形式查看数据库中的日期?您在数据库中存储的不是日期字符串,而是日期。是的,您是对的。这是否意味着我将无法以dd-MM-yyyy的形式查看数据库中的日期?因此,以下是我实际尝试的内容:在Jtable中,我需要过滤日期,比如Date1和Date2之间的日期,并根据这些日期给出搜索结果。因此,如果我以任何格式提供日期,它会起作用吗?我会解析您在Java中作为日期获得的任何字符串,将其作为
Java.sql.Date
传递到数据库,从数据库接收
Java.sql.Date
s,然后在向用户显示时格式化它们。@mustangDC您将日期时间值与字符串混淆了。这就像把数字13的“1”和“3”混淆一样。数据库不以字符串形式存储日期时间值,而是以字符串形式存储。Java不将日期时间值作为字符串处理;Java提供了至少3个日期时间框架,其中包含表示日期时间值的类:[1]Java.util.date/.Calendar,[2]Java.time内置于Java 8和更高版本,[3]第三方Joda时间库。java.sql.*类在数据库和java应用程序之间穿梭数据,不进行字符串转换。因此,以下是我实际尝试的内容:在Jtable中,我需要过滤日期,比如Date1和Date2之间的日期,并根据这些日期给出搜索结果。因此,如果我以任何格式提供日期,它会起作用吗?我会解析您在Java中作为日期获得的任何字符串,将其作为
Java.sql.Date
传递到数据库,从数据库接收
Java.sql.Date
s,然后在向用户显示时格式化它们。@mustangDC您将日期时间值与字符串混淆了。这就像把数字13的“1”和“3”混淆一样。数据库不以字符串形式存储日期时间值,而是以字符串形式存储。Java不将日期时间值作为字符串处理;Java提供了至少3个日期时间框架,其中包含表示日期时间值的类:[1]Java.util.date/.Calendar,[2]Java.time内置于Java 8和更高版本,[3]第三方Joda时间库。java.sql.*类在数据库和java应用程序之间穿梭数据,不进行字符串转换。感谢您提供的信息。但当我试图最终根据日期范围过滤
JTable
时。如果我提供这样的日期格式,它会工作吗?是的,你可以这样做。您应该以数据库格式存储它,当您显示它时,您需要格式化它。您不需要以该格式存储它。如果您想以这种格式存储,那么将数据类型更改为string,并通过格式化dateCo来存储