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一样格式化和解析日期值。AJava.sql.date
,像AJava.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来存储