2011-05-17 104 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工作不正常。