54 votes

Obtenir la date au format HTTP en Java

J'essaie d'obtenir une chaîne de date en Java au format spécifié dans HTTP 1.1. Ce qui, pour autant que je sache, est :

Vendredi 31 décembre 1999 23:59:59 GMT

L'heure étant toujours GMT.

Quel serait le moyen le plus simple d'obtenir cela à partir de Date/Calendrier/?

52voto

Hannes R. Points 1219

Au cas où quelqu'un d'autre essaierait de trouver la réponse ici (comme je l'ai fait), voici ce qui fera l'affaire :

 String getServerTime() {
    Calendar calendar = Calendar.getInstance();
    SimpleDateFormat dateFormat = new SimpleDateFormat(
        "EEE, dd MMM yyyy HH:mm:ss z", Locale.US);
    dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
    return dateFormat.format(calendar.getTime());
}

afin de configurer le serveur pour qu'il parle anglais et donne l'heure dans le fuseau horaire GMT.

27voto

Mark Slater Points 799

Si vous utilisez Joda-Time (que je recommande vivement pour toute gestion des dates et des heures en Java), vous pouvez faire :

 import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

...

private static final DateTimeFormatter RFC1123_DATE_TIME_FORMATTER = 
    DateTimeFormat.forPattern("EEE, dd MMM yyyy HH:mm:ss 'GMT'")
    .withZoneUTC().withLocale(Locale.US);

...

RFC1123_DATE_TIME_FORMATTER.print(new DateTime())

11voto

Kristoffer E Points 1743

Si, comme moi, vous essayez de formater un Java 8 java.time.Instant vous devez explicitement ajouter le fuseau horaire au formateur. Comme ça:

 Instant instant = Instant.now();
String formatted = DateTimeFormatter.RFC_1123_DATE_TIME
        .withZone(ZoneOffset.UTC)
        .format(instant);
System.out.println(formatted);

Qui imprime :

Mar 15 mars 2016 14:45:34 GMT

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