Використання декількох операційних систем на одному комп'ютері іноді призводить до їх конфліктів між собою, коли вони використовують ті ж самі ресурси. Іноді це стосується таких простих речей як час. Навіть такі популярні ОС для ПК, як Windows і Ubuntu (Linux Mint), можуть не порозумітися і постійно змінювати час один одного на некоректний.

Причини цього явища насправді прості: Windows сприймає системний час (яке виводиться в налаштуваннях CMOS) як локальний (з урахуванням часового поясу), а Ubuntu – по UTC (за Грінвічем, без урахування часового поясу). Через це вони підправляють системний час під свою логіку, порушуючи логіку один одного.

Вирішення проблеми теж просте: або змусити Windows додавати до системного часу зміщення по часовому поясу, або заборонити Ubuntu додавати цей зсув.

Налаштування в Ubuntu/Linux Mint

Починаючи з версії Ubuntu 16.04, налаштування відображення часу можна перемикати двома командами.

Увімкнути локальний час:

sudo hwclock --localtime --adjust

Увімкнути час по UTC:

sudo hwclock --utc --adjust

У старіших версіях Ubuntu потрібно редагувати файл rcS:

sudo nano /etc/default/rcS

У ньому потрібно додати (для відображення локального часу) або видалити (для відображення часу по UTC) даний рядок:

UTC = no

Налаштування у Windows

У Windows майже всі системні налаштування редагуються в реєстрі, необхідний в даній ситуації TimeZoneInformation – не виняток. Знаходиться він в реєстрі за цією адресою:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation

Тут потрібно додати або змінити параметр RealTimeIsUniversal. Його тип DWORD. Для того щоб системний час зчитувався по UTC, потрібно виставити значення 1, для розпізнавання його як локального потрібно виставити значення 0 або зовсім видалити цей параметр.

Оскільки я люблю спрощувати завдання до нуля, я підготував спеціальний файлик для автоматичного редагування реєстру. Тобі залишається лише запустити його на своїй Windows:

Time-UTC.reg Звантажити