【问题标题】:how to get the date in the format that is displayed in sql table?如何以sql表中显示的格式获取日期?
【发布时间】: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 对象传递给您的查询,不用担心格式。格式是用来显示的,不是用来查询的。
  • DateFormatSimpleDateFormat 类是出了名的麻烦,Date 设计也很糟糕,而且都已经过时了。使用我提到的LocalDate 类,它来自java.time,现代Java 日期和时间API。
  • 格式化取决于客户端应用程序和桌面格式/区域设置。存储在数据库中的内部date 值是二进制数据。

标签: java oracle date date-format


【解决方案1】:

从 SQL 查询中选择日期列作为字符串并将其格式化为 dd-mmm-yy。
你用来查询Oracle的客户端,经常使用SQL Developer,就是格式化日期的那个。
Java 将日期作为日期数据类型获取,并将在将其转换为字符串时使用默认格式

【讨论】:

    猜你喜欢
    • 2017-04-24
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多