Twój komputer przechowuje czas na zegarze sprzętowym na płycie głównej. Zegar śledzi czas, nawet gdy komputer jest wyłączony. Domyślnie Windows zakłada, że czas jest przechowywany w czasie lokalnym, podczas gdy Linux zakłada, że czas jest przechowywany w czasie UTC i stosuje przesunięcie. Prowadzi to do jednego z systemów operacyjnych, który pokazuje zły czas w sytuacji podwójnego rozruchu.
Aby rozwiązać ten problem, masz dwie możliwości: spraw, aby Linux używał czasu lokalnego lub aby system Windows używał czasu UTC. Nie wykonuj obu instrukcji lub nadal nie będą mówić tym samym językiem! Zalecamy, aby Linux wykorzystał czas lokalny, jeśli to możliwe.
Uczynienie z Linuksa czasu lokalnego w ten sam sposób, w jaki działa system Windows, jest prawdopodobnie najlepszą opcją. System Windows ma ustawienie rejestru, które wymusza przechowywanie czasu jako UTC, ale podobno nie jest dobrze obsługiwane i może powodować problemy z niektórymi aplikacjami innych firm, które zawsze zakładają, że zegar sprzętowy jest w czasie lokalnym. Jest to również niezgodne z własną usługą synchronizacji czasu w systemie Windows.
Czynności, które sprawią, że twój system Linux będzie korzystał z czasu lokalnego, może różnić się od dystrybucji Linuksa do dystrybucji Linuksa. Jednak w każdej dystrybucji Linuksa z systemd możesz użyć skrótu timedatectl
polecenie, aby dokonać tej zmiany. Będzie to działać na współczesnych wersjach Ubuntu, Fedory, Red Hata, Debiana, Minta i innych dystrybucji Linuksa korzystających z systemd.
Aby to zmienić, najpierw otwórz okno terminala w systemie Linux. Uruchom następującą komendę, aby ustawić zegar czasu rzeczywistego na płycie głównej na czas lokalny. Linux będzie przechowywać czas w czasie lokalnym, podobnie jak system Windows.
timedatectl set-local-rtc 1 --adjust-system-clock
Aby sprawdzić bieżące ustawienia, uruchom:
timedatectl
Jeśli widzisz "RTC w lokalnej TZ: tak", Linux jest ustawiony do korzystania z lokalnej strefy czasowej zamiast UTC. Polecenie ostrzega, że ten tryb nie jest w pełni obsługiwany i może powodować pewne problemy podczas zmiany strefy czasowej i czasu letniego. Jednak ten tryb jest prawdopodobnie lepiej obsługiwany niż opcja UTC w systemie Windows. W przypadku podwójnego rozruchu w systemie Windows system Windows będzie obsługiwał czas letni.
Jeśli kiedykolwiek chcesz cofnąć tę zmianę, uruchom następujące polecenie:
timedatectl set-local-rtc 0 --reguluj-system-zegar
Użycie systemu Windows w czasie UTC, takim jak Linux, prawdopodobnie nie jest najlepszą opcją. Możesz edytować rejestr, aby system Windows korzystał z czasu UTC, ale może to potencjalnie powodować więcej problemów niż tylko korzystanie z czasu lokalnego w Linuksie.
Jeśli chcesz to zrobić, najpierw musisz wyłączyć funkcję aktualizacji czasu Internetu w systemie Windows. Dzięki temu system Windows nie ustawi zegara niepoprawnie podczas próby zsynchronizowania bieżącego czasu z Internetem. W systemie Windows 10 wybierz Ustawienia> Czas i język i wyłącz opcję "Ustaw czas automatycznie". W systemie Windows 7 kliknij prawym przyciskiem myszy zegar systemowy na pasku zadań i wybierz "Dostosuj datę / godzinę". Kliknij kartę "Czas internetowy", kliknij przycisk "Zmień ustawienia", odznacz opcję "Synchronizuj z internetowym serwerem czasu" i kliknij "OK".
Będziesz teraz musiał dodać odpowiednią wartość do rejestru systemu Windows. Oto nasze standardowe ostrzeżenie: Edytor rejestru jest potężnym narzędziem, a jego nieprawidłowe użycie może spowodować, że system stanie się niestabilny lub nawet nie działa. To całkiem łatwy hack i nie powinieneś mieć żadnych problemów, dopóki będziesz postępować zgodnie z instrukcjami. To powiedziawszy, jeśli nigdy wcześniej z nim nie pracowałeś, pomyśl o tym, jak korzystać z Edytora rejestru, zanim zaczniesz. I zdecydowanie wykonaj kopię zapasową rejestru (i komputera!) Przed wprowadzeniem zmian.
Najpierw otwórz Edytor rejestru, klikając Start, wpisując "regedit" i naciskając Enter. Zgadzam się z wyświetlonym monitem bezpieczeństwa.
Przejdź do następującego klucza w lewym okienku edytora rejestru:
HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ TimeZoneInformation
W najnowszych wersjach systemu Windows 10 możesz skopiować i wkleić powyższą linię w polu adresu. Jednak ten hack będzie działał również na Windowsie 7.
Kliknij prawym przyciskiem myszy klucz "TimeZoneInformation" i wybierz Nowy> Wartość DWORD (32-bitowa).
Nazwij swoją nową wartość RealTimeIsUniversal
.
Kliknij dwukrotnie ikonę RealTimeIsUniversal
wartość, którą właśnie utworzyłeś, ustaw dane wartości na 1
i kliknij "OK".
Właśnie skończyłeś i możesz zamknąć Edytor rejestru. Windows będzie przechowywać czas w UTC, podobnie jak Linux.
Jeśli kiedykolwiek chcesz cofnąć tę zmianę, wróć do tej lokalizacji w rejestrze, kliknij prawym przyciskiem myszy RealTimeIsUniversal
wartość dodana i usuń ją z rejestru.
Jeśli nie chcesz edytować rejestru samodzielnie, możesz skorzystać z naszego hackowania do pobrania. Stworzyliśmy jeden hack, który sprawia, że Windows używa czasu UTC i przywraca go do czasu lokalnego. Oba znajdują się w następującym pliku ZIP. Wystarczy pobrać plik, dwukrotnie kliknąć hack, którego chcesz użyć, i wyrazić zgodę na dodanie informacji do rejestru.
Spraw, aby system Windows używał czasu UTC
Powyższe hacki robią to samo, co opisaliśmy powyżej. Użycie czasu UTC w usłudze UTC powoduje utworzenie wpisu "RealTimeIsUniversal" o wartości "1", natomiast użycie atrybutu "Make Windows Use Local Time" usuwa wpis "RealTimeIsUniversal".
Jeśli chcesz zobaczyć, co robi ten lub inny plik .reg, kliknij go prawym przyciskiem myszy i wybierz "Edytuj", aby wyświetlić plik w Notatniku. Możesz łatwo tworzyć własne hacki rejestru, które składają się z listy wpisów rejestru, które można dodać, edytować i usunąć na prawidłowo sformatowanej liście.
Chociaż MacOS firmy Apple używa czasu UTC takiego jak Linux, nie powinieneś robić nic specjalnego, gdy uruchamiasz system Windows w Boot Camp na komputerze Mac. Sterowniki Apple Boot Camp obsługują wszystko. (Podwójne bootery Hackintosh to już inna historia i będą musieli spróbować skorzystać z podkręcania rejestru systemu Windows powyżej).
Jeśli zastanawiasz się, dlaczego Windows wykorzystuje czas lokalny zamiast UTC, tak jak inne systemy operacyjne, oficjalny blog Microsoft The Old New Thing wyjaśnia to tutaj. Krótko mówiąc, miało to na celu zachowanie kompatybilności wstecznej z systemami Windows 3.1 i zapobieganie dezorientacji ludzi, gdy ustawiają czas w BIOS-ie komputera. Oczywiście producenci komputerów osobistych wybierali czas lokalny, aby byli zgodni z Windows, a Windows wybrał czas lokalny, aby był zgodny z decyzją producentów komputerów, więc cykl stał się samonapędzający.
Obecnie nie ma standardu oznaczania, czy czas jest przechowywany jako UTC lub czas lokalny w BIOS-ie lub oprogramowaniu UEFI, co prawdopodobnie byłoby najbardziej logicznym rozwiązaniem. Ale wymagałoby to trochę pracy i większość ludzi nawet nie zauważy, że różne systemy operacyjne używają różnych formatów czasu - z wyjątkiem konfiguracji z podwójnym ładowaniem.