2011-05-17 101 views
0

我正在使用postgresql9.0和JDK6。 我在postgresql中运行pg_controldata命令。因为我需要“最新检查点时间:”值。它是带时区的日期&。关于postgresql + java中的时区问题?

在运行java API时,它显示了除时区以外的所有内容。

从直接的Postgres它,它显示---最新的检查点的时间:周一2012 3月12日上午八时15分43秒SGT

但是当通过代码运行,那么它显示----最新的检查点的时间:Mon Mar 12 08:15:43 2012

如何解决?

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

向我们显示不显示时区的代码。 – asgs 2011-05-17 10:29:05

+0

String result = pe.executepsql(“/ data/PostgreSQL/bin/pg_controldata/data/PostgreSQL/data”); System.out.println(“Output of cmd:”+ result); \t String start =“最新检查点的时间:”; \t String end =“最小恢复结束位置:”; \t String str = result.substring(result.indexOf(start)+“最新检查点的时间:”。length(),result.indexOf(end))。trim(); \t \t System.out.println(“最新检查点的时间:”+ str); executepsql()用于执行postgres命令。 – Anjali 2011-05-18 04:14:42

回答

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工作不正常。