Ciao,

ho un problema con il get di un'orario da un DB INFORMIX. Gli orari su questo DB sono in UTC; per calcolarmi l'orario corretto devo fare

UTC + 1 in caso di ora solare
UTC + 2 in caso di ora legale

C'è un modo per sapere tramite codice java se siamo in ora legale o solare ?
Questo metodo secondo voi può andare bene ?

codice:
import java.util.*;

public class Prova5{
private static Calendar cal;
public static String oraLegale(){
	cal=Calendar.getInstance();
	String ora="Ora ";
	int day=cal.get(Calendar.DAY_OF_MONTH );

	int month=cal.get(Calendar.MONTH);
	System.out.println("Day "+day +" month "+month +" Year "+cal.get(Calendar.YEAR));
	if(month<Calendar.APRIL){
		if(month==Calendar.MARCH && ultimaSettimana(month,day))
		ora+=" Legale";
		else ora+=" Solare";
		}else if(month>Calendar.SEPTEMBER){
			if(month==Calendar.OCTOBER && !ultimaSettimana(month,day))
					ora+=" Legale";
			else ora+=" Solare";
			}else ora+=" Legale";

	return ora;

	}

public static boolean ultimaSettimana(int month,int day){
	int d=day;
	int day_week=cal.get(Calendar.DAY_OF_WEEK );

	if(day_week==Calendar.SUNDAY && (d+7)>giorniMese(month))
		return true;
	else if(d>trovaDomenica(d,month,day_week)) return true;
	return false;

	}

public static int trovaDomenica(int d,int month,int day_week){

	int dw=day_week;
	for (int i=d;i<=giorniMese(month);i++){
		if(dw>7) dw=1;
		if(dw==Calendar.SUNDAY) {return i;}
		dw++;
		}
	return -1;

	}

public static int giorniMese(int month){
	int a=cal.get(Calendar.YEAR);
	int d=0;
	switch(month){
				case 0:case 2 :case 4 :case 6 :case 7 :case  9 :case 11 :d =31; break;
				case 1: d= (a%4==0) ? 29:28;break;
				default : d =30;

		}//switch

	return d;

	}

public static void main(String []args){
	System.out.println(oraLegale());
	}
}
grazie