【发布时间】:2019-10-17 17:58:19
【问题描述】:
我有一个带有日期列的 oracle 数据库表。当我查询表格日期时以dd-MMM-yy 格式显示。例如17-OCT-19 格式。但是,当我从 java 查询表并打印值时,我看到的是 yyyy-MM-dd 格式的日期。有没有办法可以获取与dd-MMM-yy 格式显示的日期相同的日期?我不知道为什么日期在 java 中以不同的格式显示。
DateFormat activityDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date activityDate = activityDateFormat.parse();
activityDateFormat = new SimpleDateFormat("dd-MMM-yy");
finalActivityDate = activityDateFormat.format(activityDate);
我正在使用这段代码将日期从yyyy-MM-dd 转换为dd-MMM-yy 格式。数据库中日期格式的 NLS 设置为DD-MON-RR。有什么原因我没有得到与DD-MON-RR 相同的日期吗?有人可以帮帮我吗?
【问题讨论】:
-
你能展示一下你是如何查询的代码吗?
-
使用参数(
?占位符)和PreparedStatement.setObject()将LocalDate对象传递给您的查询,不用担心格式。格式是用来显示的,不是用来查询的。 -
DateFormat和SimpleDateFormat类是出了名的麻烦,Date设计也很糟糕,而且都已经过时了。使用我提到的LocalDate类,它来自java.time,现代Java 日期和时间API。 -
格式化取决于客户端应用程序和桌面格式/区域设置。存储在数据库中的内部
date值是二进制数据。
标签: java oracle date date-format