2013-02-08 5 views
0

i ont une petite application java qui importe des dates dans une base de données mysql-je utiliser ce code pour convertir le temps:Java créer Unixtime et MySQL reconvertir?

Calendar cal = Calendar.getInstance(); 
cal.set(2012, 2, 30, 0, 0); // for 2012-03-30 00:00 
unixtime = cal.getTimeInMillis(); 
unixtime = unixtime/1000; 
System.out.println(unixtime); // => 1333062005 

Si je lance:

SELECT FROM_UNIXTIME(1333062005) AS T1; 

i get:

2012-03-30 01:00:05

Je pense que le 5 se conds sont quelques différences d'arrondis, car millisecondes à secondes. Mais pourquoi son 01:00 et non 00:00?

Une idée?

Répondre

0

Mysql a un fuseau horaire différent de Java. S'il vous plaît définir votre fuseau horaire comme:

SET time_zone = 'America/New_York'; 
+0

C'est mauvais, je ne suis pas capable de changer la partie mysql. Puis-je changer quelque chose dans la partie Java. Mon time_zone est gmt + 1 – Mike

+0

quelle sortie vous voyez pour ceci: SELECT @@ global.time_zone, @@ session.time_zone; et le comparer avec celui de Jave en utilisant: TimeZone tz = Calendar.getInstance(). GetTimeZone(); System.out.println ("TimeZone:" + tz.getDisplayName()); –

+0

La sortie est "SYSTEM" – Mike