我试图了解为什么存储在我的SQL数据库(定义为date
列)中的日期格式为 MM / dd / yyyy 但是当我检索它时在我的java应用程序中作为String对象,它被格式化为 yyyy-mm-dd
@Column(name="date")
String date;
我知道我可以使用以下方法手动重新格式化
Date inputDate = new SimpleDateFormat("yyyy-MM-dd").parse(user.getDate());
String outputDate = new SimpleDateFormat("MM/dd/yyyy").format(inputDate );
但有没有办法阻止重新格式化? @DateTimeFormat
注释是否能够强制执行我指定的任何格式? (我没试过就试过这个。)
感谢任何意见,谢谢?
答案 0 :(得分:2)
日期显示格式取决于用于编写SQL查询的工具或IDE,当我们在java应用程序中检索日期字段时,它将仅返回yyyy-MM-dd
格式。
如果您想要特定的日期格式,您可以使用特定于数据库的方法来格式化日期值,如下所示:
对于MYSQL,您可以使用DATE_FORMAT
函数。
Ex: select DATE_FORMAT(date_field, 'mm/dd/yyyy') from table_name;
对于MSSQL:
Ex: select CONVERT(VARCHAR(10), date_filed, 101) from table_name;
对于Oracle,您可以使用TO_CHAR
函数。
Ex: select TO_CHAR(date_field, 'mm/dd/yyyy') from table_name;