170 votes

java convertir millisecondes à ce jour

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

285voto

AVD Points 57984

Vous pouvez utiliser java.util.Date classe, puis SimpleDateFormat pour le format de l' Date.

Date date=new Date(millis);

136voto

Faisal Ashraf Points 91
Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(timeStamp);
    int mYear = calendar.get(Calendar.YEAR);
    int mMonth = calendar.get(Calendar.MONTH);
    int mDay = calendar.get(Calendar.DAY_OF_MONTH);

14voto

Cameron Skinner Points 19987

La façon la plus simple pour ce faire est d'utiliser le Joda classe DateTime et de spécifier à la fois le temps en millisecondes et la DateTimeZone vous le souhaitez.

Je vous recommandons fortement d'éviter le built-in Java Date et le Calendrier des classes; ils sont terribles.

13voto

Bill Points 7322

Si le millis valeur est le nombre de millis depuis le 1er janvier 1970 GMT, comme c'est la norme pour la JVM, alors que c'est indépendant de fuseau horaire. Si vous voulez vous le formater avec un fuseau horaire spécifique, vous pouvez simplement convertir un GregorianCalendar objet et de définir le fuseau horaire. Après qu'il y a de nombreuses façons de le formater.

5voto

Jessica Brown Points 3042

La classe SimpleDateFormat a une méthode appelée SetTimeZone(Fuseau horaire) qui est héritée de la classe DateFormat. http://docs.oracle.com/javase/6/docs/api/java/text/DateFormat.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X