Hello All ,
I want to get the abbreviated timezone like pst , cst , mdt etc .
Here the things I did .>>
I want to get the abbreviated timezone of the datbase - like cst , PDT, EST etc depending on the db location .
I am using at db > select dbtimezone from dual this gives me timeoffset like -06:00 ie GMT-06:00 . In
java I had to take this value and display in the abbreviated form .
for reference
http://www.timeanddate.com/library/abbreviations/timezones/ Pls help .
here comes the code I used.( Using hashtable i can get but its not recommended )
/**
* To read data from a table that is present in spread sheet
* Author Mahesh Kumar Lala
* Date 08- 25- 2006.
* Version 1.0
**/
import java.io.*;
import java.sql.*;
import java.util.Hashtable;
import java.util.Enumeration;
import java.util.TimeZone;
public class GetZone{
GetZone()
{
}
public static void main(
String[] args){
Connection connection = null;
String UTCTimeZone = null;
Hashtable htbl = new Hashtable();
htbl.put("+00:00", "GMT");
htbl.put("+01:00", "CET");
htbl.put("+02:00", "EET");
htbl.put("-04:00", "EDT");
htbl.put("-05:00", "EST");
htbl.put("-06:00", "CST");
htbl.put("-07:00", "MST");
htbl.put("-08:00", "PST");
htbl.put("+08:00", "WST");
htbl.put("+09:00", "I");
htbl.put("-09:00", "AKST");
htbl.put("+09:30", "ACST");
htbl.put("+10:00", "AEST");
htbl.put("+10:30", "ACDT");
htbl.put("+11:00", "AEDT");
try{
GetZone obj = new GetZone();
Class.forName("oracle.jdbc.OracleDriver");
System.out.println("==>Driver loaded and registered");
Connection con = DriverManager.getConnection( "xxxxx","user","pwd" )
System.out.println("==>Connection obj is created");
Statement st = con.createStatement();
String query = " SELECT DBTIMEZONE FROM DUAL";
ResultSet rs = st.executeQuery(query);
System.out.println("==>ResultSet obj is created");
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
System.out.println("==>Reading the column names ");
for (int i = 1; i <= numberOfColumns; i++) {
if (i > 1) System.out.print(" ");
String columnName = rsmd.getColumnName(i);
System.out.print(columnName);
}
System.out.println(" ");
while (rs.next()) {
for (int i = 1; i <= numberOfColumns; i++) {
if (i > 1) System.out.print(" ");
String columnValue = rs.getString(1);
System.out.print("THE ZONE IS FROM DB:- " + columnValue);
String ID = "GMT"+columnValue ;
TimeZone tz = TimeZone.getTimeZone(ID);
System.out.println( "THE TIMEZONE IS " + tz);
System.out.println("getID"+ tz.getID());
System.out.println("DisplayName" + tz.getDisplayName());
System.out.println("DisplayName" + tz.SHORT);
}
System.out.println("");
}
st.close();
con.close();
} catch(Exception ex) {
System.err.print("Exception: ");
System.err.println(ex.getMessage());
}
}
}
After getting the dbtimezone , using hashtable and searching into it for key i can get the value like cst est etc but I don't want to use hashtable I want to use java api .
thanks
mahesh