Je veux obtenir l'heure UTC actuelle en millisecondes. J'ai fait des recherches sur Google et j'ai obtenu quelques réponses selon lesquelles System.currentTimeMillis() renvoie l'heure UTC, mais ce n'est pas le cas. Si je fais ce qui suit :
long t1 = System.currentTimeMillis();
long t2 = new Date().getTime();
long t3 = Calendar.getInstance().getTimeInMillis();
Les trois temps sont presque identiques (la différence est en milli secondes en raison des appels).
t1 = 1372060916
t2 = 1372060917
t3 = 1372060918
et cette heure n'est pas l'heure UTC mais plutôt l'heure de mon fuseau horaire. Comment puis-je obtenir l'heure UTC actuelle dans Android ?
5 votes
Renvoie l'heure actuelle du système en millisecondes depuis le 1er janvier 1970 00:00:00 UTC
2 votes
docs.oracle.com/javase/1.4.2/docs/api/java/lang/
0 votes
C'est la question. Qu'est-ce qu'il retourne ? l'heure UTC ou il ajuste le fuseau horaire ? s'il retourne l'heure UTC, alors t1 et t2, t3 ne devrait pas être le même que t2 et t3 retourne l'heure de votre fuseau horaire.
3 votes
Long t3 = Calendar.getInstance(TimeZone.getTimeZone("UTC")).getTimeInMillis() ;
3 votes
Le lien ci-dessus dit "Voir la description de la classe Date pour une discussion sur les légères divergences qui peuvent survenir entre le "temps informatique" et le temps universel coordonné (UTC)" et dans la documentation de java.util.Date vous trouvez : "Bien que la classe Date soit destinée à refléter le temps universel coordonné (UTC), il se peut qu'elle ne le fasse pas exactement, en fonction de l'environnement hôte de la machine virtuelle Java" -> il est donc possible que votre machine renvoie un temps non UTC.
5 votes
@g.revolution : C'est "le nombre de millisecondes depuis le 1er janvier 1970 00:00:00 UTC" - comment voulez-vous que cela s'ajuste à un fuseau horaire ? Votre fuseau horaire local n'affecte pas le nombre de millisecondes qui se sont produites depuis cette époque.