关于postgresql + java中的时区的问题?

时间:2011-05-17 10:27:02

标签: java postgresql

我正在使用postgresql9.0和JDK6。 我在postgresql中运行pg_controldata命令。因为我需要“最新检查点的时间:”值。这是一个日期&时间与时区。

在运行java API时,它会消除时区以外的所有内容。

从直接postgres它显示---最新检查点的时间:2012年3月12日上午08:15:43 SGT

但是当通过代码运行时它显示----最新检查点的时间:2012年3月12日星期一08:15:43

如何解决?

String result = 
pe.executepsql("/data/PostgreSQL/bin/pg_controldata /data/PostgreSQL/data"); 
System.out.println("Output of cmd:" +result); 
String start = "Time of latest checkpoint:"; 
String end = "Minimum recovery ending location:"; 
String str = result.substring(result.indexOf(start)+
"Time of latest checkpoint:".length(),result.indexOf(end)).trim(); 
System.out.println("Time of latest checkpoint: " +str); 
executepsql()

用于执行postgres命令。

executepsql()用于执行postgres命令。

我也尝试了psql -c命令,这个方法运行正常。但是pg_controldata无法正常工作。

1 个答案:

答案 0 :(得分:1)

String result = pe.executepsql("/data/PostgreSQL/bin/pg_controldata /data/PostgreSQL/data");
System.out.println("Output of cmd:" +result);
String start = "Time of latest checkpoint:";
String end = "Minimum recovery ending location:";
String str = result.substring(result.indexOf(start)+"Time of latest checkpoint:".length(),result.indexOf(end)).trim();
System.out.println("Time of latest checkpoint: " +str);

executepsql()用于执行postgres命令。

我也尝试了psql -c命令,这个方法运行正常。但是pg_controldata无法正常工作。