数据库中的日期以不同的格式返回 - 为什么?

时间:2016-05-04 05:19:04

标签: java date

我试图了解为什么存储在我的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注释是否能够强制执行我指定的任何格式? (我没试过就试过这个。)

感谢任何意见,谢谢?

1 个答案:

答案 0 :(得分:2)

日期显示格式取决于用于编写SQL查询的工具或IDE,当我们在java应用程序中检索日期字段时,它将仅返回yyyy-MM-dd格式。

如果您想要特定的日期格式,您可以使用特定于数据库的方法来格式化日期值,如下所示:

对于MYSQL,您可以使用DATE_FORMAT函数。

Ex: select DATE_FORMAT(date_field, 'mm/dd/yyyy') from table_name;

参考:MYSQL DATE FORMATTING

对于MSSQL:

Ex: select CONVERT(VARCHAR(10), date_filed, 101) from table_name;

参考:MSSQL DATE FORMATTING

对于Oracle,您可以使用TO_CHAR函数。

Ex: select TO_CHAR(date_field, 'mm/dd/yyyy') from table_name;

参考:ORACLE DATE FORMATTING