如何转换日期格式并使用Java中的新格式将其存储在日期字段(不是字符串或println)中

如何转换日期格式并使用Java中的新格式将其存储在日期字段(不是字符串或println)中,java,date,simpledateformat,date-formatting,Java,Date,Simpledateformat,Date Formatting,我试图从一个对象中获取日期,并更改格式,接下来我需要使用日期值作为日期字段本身(而不是字符串) 正在使用SimpleDataFormat的format()方法更改格式。但是,当我们使用SimpleDataFormat的parse()方法将此字符串值分配回日期字段时,将使用默认格式。 使用SpringMVC,需要将此日期MM/dd/yyyy作为模型属性传递给JSP文件 PFB代码和处理该行后生成的日期格式注释 Date date1 = student.getDateOfBirth();

我试图从一个对象中获取日期,并更改格式,接下来我需要使用日期值作为日期字段本身(而不是字符串)

正在使用SimpleDataFormat的format()方法更改格式。但是,当我们使用SimpleDataFormat的parse()方法将此字符串值分配回日期字段时,将使用默认格式。 使用SpringMVC,需要将此日期MM/dd/yyyy作为模型属性传递给JSP文件

PFB代码和处理该行后生成的日期格式注释

Date date1 = student.getDateOfBirth();        // Tue May 16 00:00:00 IST 2017
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
String dateStr = dateFormat.format(date1);    // 05/16/2017
Date date2 = format.parse(dateStr);           // Tue May 16 00:00:00 IST 2017
student.setDateOfBirth(date2);

Date
对象没有任何表示格式的状态。如果在
date1
中获得了正确的值,那么格式化和解析它完全没有意义


相反,当您希望以后以特定格式显示
日期时,您应该在那里对其进行格式化。(请注意,您也应该决定您感兴趣的时区。)

感谢Jon的回复。您的意思是我们不能在日期字段中存储格式为“MM/dd/yyyy”的日期吗?@JeromeJoseph:如果字段类型为
date
,则不能-您只能存储即时时间。如果有帮助的话,可以把它想象成一个
int
字段——你不能说“我想用十六进制存储这个
int
”或“我想用二进制存储这个
int
”——它只是一个整数。日期时间对象不是字符串,也没有格式。在发布之前先研究一下这个主题。