/**
* AstrosoftTimeZone.java
* Created On 2006, Mar 10, 2006 2:22:11 PM
* @author E. Rajasekar
*/
package app.astrosoft.util;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.TimeZone;
import app.astrosoft.consts.AstroConsts;
import app.astrosoft.ui.AstroSoft;
public class AstrosoftTimeZone {
String tzId;
public AstrosoftTimeZone(String timeZoneId) {
tzId = timeZoneId;
}
public double offset(){
return offset(this.tzId);
}
public String id(){
return tzId;
}
public TimeZone getTimeZone(){
return TimeZone.getTimeZone(tzId);
}
public static double offset(String tzId){
TimeZone tz = TimeZone.getTimeZone(tzId);
return ((double)tz.getOffset(new GregorianCalendar(tz).getTimeInMillis())) / (AstroConsts.MILLIS_IN_HR);
}
@Override
public String toString() {
double offset = offset();
String sign = offset < 0 ? "-" : "+";
return tzId + " (GMT " + sign + AstroUtil.todegmin(offset(), ":", true) + ")";
}
public static AstrosoftTimeZone[] availableTimeZones(){
String ids[] = TimeZone.getAvailableIDs();
AstrosoftTimeZone tzs[] = new AstrosoftTimeZone[ids.length];
int i = 0;
for(String id : ids){
tzs[i++] = new AstrosoftTimeZone(id);
}
return tzs;
}
@Override
public boolean equals(Object obj) {
//System.out.println( "Equals tzId -> " + System.currentTimeMillis());
return ((this == obj) || (tzId.equals(((AstrosoftTimeZone)obj).id())));
}
@Override
public int hashCode() {
System.out.println( "Hashcode tzId -> " + System.currentTimeMillis());
return tzId.hashCode();
}
public static void main(String[] args) {
for(AstrosoftTimeZone tz : AstrosoftTimeZone.availableTimeZones()){
System.out.println(tz);
}
}
}