web-dev-qa-db-fra.com

L'horloge de l'émulateur ne correspond pas à l'horloge du système hôte

Pourquoi l'horloge de l'émulateur Android ne correspond-elle pas à l'horloge du système hôte? C'est pas une différence de fuseau horaire - c'est toujours éteint de plusieurs minutes.

Existe-t-il un moyen de les synchroniser en plus de régler manuellement l'heure de l'émulateur?

28
Jeff Axelrod

Je crois qu'il n'y a aucun moyen de synchroniser l'heure. L'image par défaut de l'émulateur est définie sur UTC/GMT (+00: 00). Cependant, vous pouvez le changer pour le vôtre.

Voici une image sur la façon de le faire: Commencez par décocher le "Fuseau horaire automatique" (flèche rouge), puis cliquez sur le "Fuseau horaire sélectionné" (flèche verte) et sélectionnez enfin votre fuseau horaire. doit correspondre à celui de votre système (flèche jaune). timezone screen shots

13
Raykud

En cas de divergences entre les heures AVD et Hôte, vous pouvez utiliser adb Shell date pour vérifier et/ou définir la date juste après le lancement de l'émulateur, principalement après le redémarrage d'une capture instantanée.

5

Comme j'ai ce lien en haut dans google :)

Sur windows vous pouvez obtenir le bon moment en émettant

adb Shell date -s %date:~10,4%%date:~4,2%%date:~7,2%.%time:~0,2%%time:~3,2%%time:~6,2%

-s la valeur doit être au format: YYYYMMDD.hhmmss

Sur les systèmes qui ont un format d’heure différent , une partie avec Windows args Shell sera différent!

Vous pouvez tester dans cmd.exe:

> echo %date%
Thu 01/22/2015

Pour sortir une partie de YYYY, utilisez: %date:[position of char. 0-based],[length]%

Sur linux :

adb Shell date -s $(date +%Y%m%d.%H%M%S)
5
Artem L

La commande date a changé dans les nouveaux androïdes depuis que les autres réponses ont été fournies. Vous devez avoir la racine, -s n'est pas reconnu et le format défini a changé.

J'ai eu de la chance avec adb Shell su root date -u @$(date +%s.%N), qui utilise @ pour le définir à l'aide de timestamp secondes UNIX avec une précision à la nanoseconde. -u est requis si vous avez modifié le fuseau horaire pour une raison quelconque, même si les horodatages ne doivent pas avoir de fuseau horaire!

1
Simon Buchan

Sous Windows, vous devez insérer des guillemets autour de la chaîne datetime pour éviter les erreurs lorsque l'analyse renvoie un espace devant un chiffre.

La syntaxe complète serait:

adb Shell date -s '%date:~10,4%%date:~4,2%%date:~7,2%.%time:~0,2%%time:~3,2%%time:~6,2%'
0
user4906642