J'ai millisecondes dans certains fichier journal généré dans le serveur, je sais aussi que les paramètres régionaux de l'endroit où le fichier journal a été généré, mon problème est de convertir millisecondes à la date au format spécifié. Le traitement de ce journal qui se passe sur le serveur situé dans le fuseau horaire différent. Lors de la conversion "SimpleDateFormat" programme est la date de prise de la machine en tant que telle date formatée ne représentent pas l'heure exacte du serveur. Est-il possible de gérer cela de façon élégante ?
long yourmilliseconds = 1322018752992l;
//1322018752992-Nov 22, 2011 9:25:52 PM
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS",Locale.US);
GregorianCalendar calendar = new GregorianCalendar(TimeZone.getTimeZone("US/Central"));
calendar.setTimeInMillis(yourmilliseconds);
System.out.println("GregorianCalendar -"+sdf.format(calendar.getTime()));
DateTime jodaTime = new DateTime(yourmilliseconds,DateTimeZone.forTimeZone(TimeZone.getTimeZone("US/Central")));
DateTimeFormatter parser1 = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss,SSS");
System.out.println("jodaTime "+parser1.print(jodaTime));
output
GregorianCalendar -2011-11-23 08:55:52,992
jodaTime 2011-11-22 21:25:52,992