2012-06-21 13 views
20

Dlaczego zegar emulatora Androida nie pasuje do zegara systemu hosta? To jest , a nie różnica stref czasowych - jest wyłączona przez kilka minut.Zegar emulatora nie pasuje do zegara systemu hosta

Czy istnieje sposób na ich synchronizację oprócz ręcznego ustawienia czasu emulatora?

+0

FYI, to jest czas uniwersalny. – Sam

+0

Czy możesz ustawić czas za pomocą ustawień tak samo, jak na urządzeniu? – FoamyGuy

+0

@Sam: Urrrm, jeśli dobrze rozumiem OP, myślę, że on oznacza "Zegar" jak w rzeczy, która pokazuje aktualny czas na ekranie. – Squonk

Odpowiedz

8

Uważam, że nie ma sposobu, aby zsynchronizować czas. Domyślny obraz emulatora to UTC/GMT (+00: 00). Możesz go jednak zmienić na własny.

Oto zdjęcie, jak to zrobić: Najpierw odznacz "Automatyczną strefę czasową" (czerwona strzałka), a następnie kliknij "Wybrana strefa czasowa" (zielona strzałka), a na końcu wybierz swoją strefę czasową, a następnie powinien pasować do tego w twoim systemie (żółta strzałka). timezone screen shots

+0

, nawet jeśli minuty są wyłączone na jego instalacji, ponieważ wydaje się, że wskazuje, nadal powinno być możliwe, aby to naprawić, zdejmując automatyczną datę i godzinę i ręcznie ustawiając godziny i minuty na cokolwiek zechcesz. Łącznie z czasem systemowym. – FoamyGuy

+0

tak :) jak już wspomniałeś, możliwe byłoby "zsynchronizowanie" go poprzez ręczne ustawienie. – Raykud

+0

Stwierdziłem w pytaniu, że to ** nie ** problem strefy czasowej, że jest wyłączony przez kilka minut (nie godziny). –

6

Jeżeli istnieją pewne rozbieżności między AVD i przyjmujących razy, głównie po ponownym uruchomieniu z migawki można użyć adb shell date sprawdzić i/lub ustawić datę po prostu uruchomiony emulator.

+0

Przeczytaj ponownie zredagowane i wyjaśnione pytanie. Dzięki! –

+1

'data powłoki adb' jest skutecznym sposobem, ale nie może rozwiązać problemu całkowicie – Ninja

4

Jak mam to jako link w górnym google :)

Na okien można uzyskać odpowiedni czas wydając

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

-s wartość powinna być w formacie: YYYYMMDD.hhmmss

W systemach, które mają inny format czasu, część z powłoką okienną o numerze będzie inna!

można przetestować w cmd.exe:

> echo %date% 
Thu 01/22/2015 

Do wyjściowego YYYY część użytku: %date:[position of char. 0-based],[length]%

Na linux:

adb shell date -s $(date +%Y%m%d.%H%M%S) 
+0

na terminalach Mac: działa tylko na emulatorze lub urządzeniu zrootowanym. adb shell su root "data $ (data +% m% d% H% S)" – Thupten

0

w systemie Windows, należy umieścić cytat wokół ciągu datetime, aby uniknąć błędu, gdy parsowanie zwraca spację przed cyfrą .

Pełną składnię byłoby:

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

Komenda date się zmieniło w nowszych androidy od innych odpowiedzi. Musisz mieć root, -s nie jest rozpoznawany, a ustawiony format się zmienił.

Miałem szczęście używając adb shell su root date -u @$(date +%s.%N), który używa @, aby ustawić go przy użyciu UNIX timestamp sekund z nanosekundową dokładnością. -u jest wymagany, jeśli z jakiegoś powodu zmieniłeś strefę czasową, mimo że sygnatury czasowe nie powinny mieć strefy czasowej!