J'ai 2 ordinateurs différents, chacun avec TimeZone différent.Est-ce que java.util.Date utilise TimeZone?
Dans une impression ordinateur im System.currentTimeMillis()
, puis imprime la commande suivante dans les deux ordinateurs: System.out.println(new Date(123456));
-> 123456 représente le nombre est venu dans le currentTimeMillis
dans l'ordinateur # 1.
La deuxième impression (bien que codée en dur) entraîne des impressions différentes sur les deux ordinateurs. pourquoi est-ce?
java.util.Date est seulement un peu indépendant du fuseau horaire. Copier et coller à partir de Java SDK7 java.util.Date.toString() 'TimeZone zi = date.getZone(); if (zi! = Null) { sb.append (zi.getDisplayName (date.isDaylightTime(), zi.SHORT, Locale.US)); // zzz } else { sb.append ("GMT"); } '' date' est un 'BaseCalendar' dont le fuseau horaire est défini sur' TimeZone.getDefaultRef() ' –
Le point clé est que vous parlez de la méthode toString(). J'ai dit que je n'avais pas regardé l'implémentation de toString(), mais je pensais que cela impliquait un calendrier. Vous venez de confirmer cela. Pas de désaccord entre nous. –
L'objet 'Date' fonctionne avec un membre' cdate' (qui est un 'BaseCalendar') avec un fuseau horaire. Et puis il se passe des choses dont personne ne se soucie vraiment et 'Date' se comporte comme indépendant du fuseau horaire tant que vous ne l'imprimez pas. Je ne voulais pas contredire votre réponse. –