web-dev-qa-db-fra.com

Comment puis-je définir un calendrier avec l'heure UTC?

Les affiches ici disent que la date est toujours en heure UTC. Cependant, si je crée une date (), crée un calendrier et définit l'heure du calendrier avec la date, l'heure reste mon heure locale (et je ne suis pas sur l'heure UTC. J'ai testé cela en imprimant la date du calendrier dans une boucle, en soustrayant une heure par boucle. Il est 23h le 19 mai ici, et il faut 24 boucles avant que la date ne passe au 18 mai. boucles.

    Date date = new Date();
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);

    SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd");

    int index = 0;
    for(; index > -30; index--)
    {
        System.out.println(index);
        System.out.println(dateFormatter.format(calendar.getTime()));
        System.out.println();
        calendar.add(Calendar.HOUR, -1);
    }
28
Benji

Java.util.Calendar Possède une méthode d'usine statique qui prend un fuseau horaire.

Calendar.getInstance(Java.util.TimeZone)

Vous pouvez donc dire:

Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
79
Simon Nickerson