Funkcja która zwraca strefe czasową w javie.

0

Chcę napisać następującą funkcje:

int convertToWarsawTime(Date inDate);

gdzie:

inDate to pewien timestamp wyrażony w strefie czasowej UTC +00:00

wynik działania to:
1 wtedy, gdy inDate reprezentuje chwilę w czasie gdy w Warszawie obowiązuje strefa UTC+01:00

2 wtedy, gdy inDate reprezentuje chwilę w czasie gdy w Warszawie obowiązuje strefa UTC+02:00

I stąd moja prośba jak się za to zabrać i jakich klas użyć?

0

Oto propozycja naskrobana bez kompilatora:

public int convertToWarsawTime(Date inDate) {

      TimeZone tz = TimeZone.getTimeZone("Europe/Belgrade"); 
		
	if (tz.inDaylightTime(d)) {
		return 2;
	} else {
		return 1;
	}
}

Tylko jeszcze musisz ewentualnie do tej daty dodać jedną godzinę (poprzez klasę Calendar) bo może się okazać, że data w UTC reprezentuje chwilę, ktora w Wawie jest tuż po / przed DST.

Pozdrawiam,

0

Ok wielkie dzięki jak jeszcze będę miał pytanko to się zgłoszę :-)
Edit:
Czyli ta metoda będzie tak wyglądała:

public int convertToWarsawTime(Date inDate){ 
		GregorianCalendar gc=new GregorianCalendar();
		TimeZone tz=TimeZone.getTimeZone("UTC+01:00");
		gc.setTime(inDate);
		gc.setTimeZone(tz);
		if (tz.inDaylightTime(gc.getTime())) {
            return 2;
		} else {
            return 1;
		}
	}

1 użytkowników online, w tym zalogowanych: 0, gości: 1