[JAVA] TimeZone issue

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • mkleinman
  • Registratie: Oktober 2001
  • Laatst online: 09:33

mkleinman

8kWp, WPB, ELGA 6

Topicstarter
Ik heb een probleem met het juist bepalen van de tijdzone in Java. Mijn computer staat netjes ingesteld op GMT+1 bij mijn klok instellingen maar wanneer ik met het volgende simpele Java programmaatje mijn tijdzone ophaal dan geeft hij consequent de verkeerde tijdzone door.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package nl.mk.test;

import java.util.Calendar;

import java.util.TimeZone;

public class TimeZoneTest {
   public TimeZoneTest() {
   }

   public static void main(String[] args) {
      TimeZone tz = Calendar.getInstance().getTimeZone();
        System.out.println("TimeZone: "+tz.getDisplayName());
        System.out.println("ID: "+tz.getID());
   }
}


Levert als output

code:
1
2
TimeZone: Greenwich Mean Time
ID: GMT


Als de reportingtool nu alleen voor mezelf was geweest had ik de tijdzone hard geforceerd op de juiste tijdzone, alleen mijn tool wordt door verschillende mensen gebruikt in verschillende tijdzones en dan werkt het dus niet.

Overigens resultaat van de tijdzone problemen kan hier rechtstreeks bekeken worden http://www.familie-kleinman.nl/energie/graphs. In de eerste tijdplot grafiek loopt de plot een uur achter op de tijd. ( grafiek ververst elke 10 minuten ). Laatste entry is nu van 12:40 terwijl de plot aangeeft 11:40 voor vandaag.

Iemand enig idee wat er fout gaat?

Duurzame nerd. Veel comfort en weinig verbruiken. Zuinig aan doen voor de toekomst.


Acties:
  • 0 Henk 'm!

  • Silentuz
  • Registratie: Mei 2004
  • Laatst online: 14-03 12:37

Silentuz

-_-

http://java.sun.com/j2se/...ar.html#getInstance%28%29
getInstance

public static Calendar getInstance()

Gets a calendar using the default time zone and locale. The Calendar returned is based on the current time in the default time zone with the default locale.

Returns:
a Calendar.
Ik gok dat de 'default time zone and locale' machine independent zijn. je zult dus ergens anders de local settings van je pc vandaan moeten toveren.

De code die je geeft werkt bij mij prima:
C:\>javac TimeZoneTest.java

C:\>java TimeZoneTest
TimeZone: Central European Time
ID: Europe/Berlin
het probleem zit hem dus ergens in de instellingen van je server?

[ Voor 42% gewijzigd door Silentuz op 11-04-2010 14:14 ]


Acties:
  • 0 Henk 'm!

  • Herko_ter_Horst
  • Registratie: November 2002
  • Niet online
@Silentuz: Wat daar staat is precies hetzelfde als wat de TS al heeft.

@TS Ik krijg op mijn PC (Windows Vista) overigens netjes de juiste TimeZone (Europe/Berlin, GMT+1. Instelling is "GMT+1: Amsterdam, Berlin, ...."). Welk OS heb je en waar staat je timezone precies op ingesteld?

"Any sufficiently advanced technology is indistinguishable from magic."


Acties:
  • 0 Henk 'm!

  • OrbitZ
  • Registratie: Juni 2001
  • Laatst online: 26-05 13:07
Wat zegt dit:
code:
1
System.out.println("user.timezone="+System.getProperty("user.timezone"));

[ Voor 7% gewijzigd door OrbitZ op 11-04-2010 14:31 ]


Acties:
  • 0 Henk 'm!

  • mkleinman
  • Registratie: Oktober 2001
  • Laatst online: 09:33

mkleinman

8kWp, WPB, ELGA 6

Topicstarter
Herko_ter_Horst schreef op zondag 11 april 2010 @ 14:18:
@Silentuz: Wat daar staat is precies hetzelfde als wat de TS al heeft.

@TS Ik krijg op mijn PC (Windows Vista) overigens netjes de juiste TimeZone (Europe/Berlin, GMT+1. Instelling is "GMT+1: Amsterdam, Berlin, ...."). Welk OS heb je en waar staat je timezone precies op ingesteld?
Ik draai op Windows Vista Business, instelling is GMT+1 Amsterdam, Berlin etc etc. . En toch levert deze code mij dus GMT als tijdzone.

Overigens op een Windows XP Pro machine die ik hier ook nog heb staan krijg ik ook GMT ipv GMT+1.

Edit:

Daarnet naar 1.6 geupdate. en dan werkt het wel correct ( ik werkte met 1.5_6 ).

[ Voor 6% gewijzigd door mkleinman op 11-04-2010 20:10 ]

Duurzame nerd. Veel comfort en weinig verbruiken. Zuinig aan doen voor de toekomst.