【发布时间】:2018-07-02 09:25:46
【问题描述】:
我有一个名为 deadline_date 的字段,类型为 timestamp with time zone,值为 2018-05-03 19:00:00-05.
select deadline_date from invoice_details where file_name='BHDHSB.pdf';
deadline_date
------------------------
2018-05-03 19:00:00-05
(1 row)
但是在从我的 java 代码中查询时,它返回的值是 2018-05-04 05:30:00+05:30 。
我认为它正在根据我的本地时区转换日期。
有什么方法可以获取存储在表中的值吗?
我正在为 Postgres 使用以下 maven 依赖项
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.4.1212</version>
</dependency>
Test.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Test {
public static Connection connection;
public void createConnection()
{
try {
if (connection==null) {
Class.forName("org.postgresql.Driver");
connection = DriverManager.getConnection("jdbc:postgresql://localhost:5432/abc", "abc", "Welcome");
connection.setSchema("iiv_location");
}
} catch (Exception e) {
e.printStackTrace();
System.err.println(e.getClass().getName() + ": " + e.getMessage());
}
}
public static void main(String[] args) {
try {
test object = new test();
object.createConnection();
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("select iiv_prescan_invoice_details.deadline_date from iiv_prescan_invoice_details");
while (resultSet.next()) {
System.out.println(resultSet.getString("deadline_date"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
【问题讨论】:
-
向我们展示您的 Java 代码
-
是的,这将是一个时区问题...向我们展示代码...
-
BTW,值是一样的,只是表示在不同的时区...
-
@UsagiMiyamoto 是的。值是一样的。但我的要求是获取存储在表中的值。我在问题中添加了我的代码。请检查。
-
@a_horse_with_no_name 添加了代码。请检查
标签: java postgresql postgresql-9.4 jdbc-postgres