Если на вашем компьютере установлено несколько операционных систем (ОС) (Windows, Linux, Mac OS/Хакинтош), то вы могли заметить, что сбивается время на разницу в часовом поясе.
Время сдвигается при загрузке Windows, если до этого вы загружались в ОС Linux, Mac OS/Хакинтош. Например, вы перезагружаете компьютер для загрузки Windows 10 после Хакинтош. Время 12:30 по МСК. После загрузки в Windows время установится 9:30.
Почему время сбивается?
Когда ОС система не загружена, то время компьютера хранится на аппаратном уровне в BIOS.
Сбой в отображении времени зависит от того как ОС хранит время в BIOS:
- Linux, Mac OS/Хакинтош хранит время в BIOS в формате UTC, т.е. без учета сдвига часового пояса
- Windows хранит время в BIOS с учетом часового пояса.
В результате загрузки Windows время отображается не корректно, т.к. ОС считает, что в BIOS время установлено с учетом часового пояса.
Как исправить?
Чтобы время не сбивалось при использовании разных ОС, необходимо Windows настроить на хранение времени в BIOS в формате UTC.
Для этого необходимо в реестр добавить параметр RealTimeIsUniversal=1
- Ветка реестра: \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
- Формат параметра RealTimeIsUniversal выбрать DWORD/QWORD в зависимости от разрядности Windows 32/64 соответственно.
Способ 1
- Открыть редактор реестра
- Нажать комбинацию клавиш Ctrl+R, в командной строке ввести regedit
- Нажать комбинацию клавиш Ctrl+R, в командной строке ввести regedit
- Открыть ветку реестра
- Добавить параметр RealTimeIsUniversal=1
- Перезагрузить компьютер.
- Если время всё также сбиваться, то потребуется дополнительная настройка. Служба времени Windows продолжает писать время в местном формате при обновлении его через интернет. Поэтому отключим службу синхронизации времени:
В командной строке с правами администратора выполнить команду:
sc config w32time start=disabled
Для того чтобы обратно запустить службу необходимо выполнить команду:
sc config w32time start=demand
Установлена Windows 10, а на соседний винт Хакинтош.
Возникла проблема. После работы в Mac OS, по возвращении в Windows время отображается неверно. (У меня разница в 3 часа, часовой пояс- московский)
Причина в том, что Mac OS настроен считывать время из BIOS в формате UTC (по Гринвичу) и изменяет его в соответствии со своим часовым поясом.
Windows же берет время напрямую из BIOS, поэтому оно отображается неверно (Mac его изменил).
Решение. В Windows запускаем редактор реестра (жмем Win+R и в окошке пишем regedit).
В разделе: \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation, создаём параметр DWORD с именем RealTimeIsUniversal и присваиваем ему значение равное ЕДИНИЦЕ.
Перегружаем комп, Устанавливаем нужное время в Windows. Всё работает.
Если время всё таки сбиваться, значит служба времени Windows продолжает писать время в местном формате при обновлении его через интернет.
Поэтому просто отключим службу синхронизации времени:
В командной строке с правами администратора выполняем команду:
sc config w32time start=disabled
Для того чтобы вновь запустить службу выполняем команду:
sc config w32time start=demand
Всё!
З.Ы.:В Linux (по крайней мере, в Ubuntu), необходимо отредактировать файл /etc/default/rcS в любом текстовом редакторе и заменить содержимое параметра «UTC=no» на «UTC=yes».
-
-
#1
I just thought I’d give people an easy to find guide for this information. Hope the mods are alright with that, and that this doesn’t violate any posting guidelines.
1. Why does this happen?
The simple explanation is; Windows uses Greenwhich time, and OSX uses Universal Time. It’s as simple as that. Every time the other OS boots up — it changes around your BIOS settings in-order to ‘correct’ the CPU clock timer — which is essential for any computer to calculate things correctly.
2. What’s the difference?GMTWindows is always defaulted to use GMT as the location to set the time and date. GMT stands for ‘Greenwich Observatory’. This observatory broadcasts the current time of the world based on the calculations of where the Earth rotation is in relation to the prime meridian. Because of the fact that GMT is outdated — it doesn’t consider other factors that are important to calculating time — such as; where the earth is in relation to the sun. Because of this — GMT is pretty much an ‘average’ or an estimated guess as to what time it is where you live.
To quote the Greenwich website…
Over time, time zones became established based on GMT as being x number of hours ahead or behind GMT. Interestingly, the clock began at noon under GMT so noon was represented by zero hours.
UTC
As more sophisticated time pieces became available to scientists, the need for a new international time standard became apparent. Atomic clocks did not need to keep time based on average solar time at a particular location because they were very, very accurate. In addition, it became understood that due to the irregularity of the earth and the sun’s movements, the exact time needed to be modified occasionally through the use of leap seconds. With this precise accuracy of time, UTC was born.
UTC, while based on zero degrees longitude, which passes through the Greenwich Observatory, is based on atomic time and includes leap seconds as they are added to our clock every so often. UTC was used beginning in the mid-twentieth century but became the official standard of world time on January 1, 1972.
UTC is 24-hour time, which begins at 0:00 at midnight. 12:00 is noon, 13:00 is 1 p.m., 14:00 is 2 p.m. and so on until 23:59, which is 11:59 p.m.
Time zones today are a certain number of hours or hours and minutes behind or ahead of UTC. UTC is also known as Zulu time in the airforce. When European Summer Time is not in effect, UTC matches the time zone of the United Kingdom.
Today, it is most appropriate to use and refer to time based on UTC and not on GMT.
3. How do I fix this?
It’s quite simple really. All you need to do is set Windows to use UTC instead of GMT. To do this — we need to perform a simple registry edit. Go perform this — hold down the ‘Windows’ button, and at the same time press R (Win + R) this will bring up a new window titled ‘RUN’
In this window type the command ‘regedit’. UAC will popup asking for admin permission. Click accept and the registry editor will open. Now that were in regedit, navigate to…
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
Left click on ‘TimeZoneInformation’ and on the left it will display all the current values attributed to this registry key. On the left right click anywhere and choose ‘Create new D-WORD’. You will now see a new entry at the bottom of the list.
Right click on this new entry and choose ‘Modify’. Rename the key ‘RealTimeIsUniversal’ and change it’s value to ‘1’. Click save, and now the entry should say ‘RealTimeIsUniversal — 0x0000001’ If it looks like that — then you’re all done!
Reboot, and sync the windows clock — now your time settings will be universal (no pun intended ).
EDIT:
If you don’t like fooling around with your registry, I’ve created a .reg file that will do all the work for you. All you need to do is download the attachment, extract it to where ever you want, and double click on ‘Windows Universal time On’
If you want to switch back to GMT. Do the same, but instead — double click on the reg file named ‘Windows Universal time Off’ and that will remove the registry edits we made.
Anyways, hope this guide helps someone! Thanks for reading everyone!! It’s greatly appreciated! I’m definitely looking forward to a good tenure on this very helpful forum.
View attachment Time Fix — Windows.zip
-
-
#2
Also, if someone could show me how to remove the very distracting line spacing — I’d appreciate it alot! Thanks!
-
-
#3
…
The simple explanation is; Windows uses Greenwhich time, and OSX uses Universal Time. It’s as simple as that. Every time the other OS boots up — it changes around your BIOS settings in-order to ‘correct’ the CPU clock timer — which is essential for any computer to calculate things correctly.…
Windows is always defaulted to use GMT as the location to set the time and date. GMT stands for ‘Greenwich Observatory’. This observatory broadcasts the current time of the world based on the calculations of where the Earth rotation is in relation to the prime meridian.
Because of the fact that GMT is outdated — it doesn’t consider other factors that are important to calculating time — such as; where the earth is in relation to the sun. Because of this — GMT is pretty much an ‘average’ or an estimated guess as to what time it is where you live.
…
Although the solution to fixing the time sync problems is correct (set RealTimeIsUniversal to 1 in the Windows registry), the explanation of the problem is incorrect.
There is a time maintained by the system board called the RTC (real time clock). This is the clock that is maintained by the small battery present on your motherboard. Windows expects this time to indicate local time, whereas OS X expects this time to represent UTC. For all practical purposes, GMT and UTC are the same and local times are a time relative to GMT/UTC. The RealTimeIsUniversal simply causes Windows to treat the BIOS/RTC time as UTC, just like OS X.
GMT: Greenwich Mean Time
UTC: Coordinated Universal Time
Think of UTC time as a way to represent the current time based on a standard location irrespective of local conventions (irrespective of local time, daylight savings time, etc).
See here for further descriptions:
http://en.wikipedia.org/wiki/Greenwich_Mean_Time
http://en.wikipedia.org/wiki/Coordinated_Universal_Time
Although many technical people think it is silly that by default Windows expects BIOS time to be local time, it is retained for backward compatibility and the 99.9% of people that don’t dual boot and would be confused by BIOS showing UTC vs. Windows showing local time.
-
-
#4
Thanks!
-
-
#5
Although the solution to fixing the time sync problems is correct (set RealTimeIsUniversal to 1 in the Windows registry), the explanation of the problem is incorrect.
There is a time maintained by the system board called the RTC (real time clock). This is the clock that is maintained by the small battery present on your motherboard. Windows expects this time to indicate local time, whereas OS X expects this time to represent UTC. For all practical purposes, GMT and UTC are the same and local times are a time relative to GMT/UTC. The RealTimeIsUniversal simply causes Windows to treat the BIOS/RTC time as UTC, just like OS X.
GMT: Greenwich Mean Time
UTC: Coordinated Universal TimeThink of UTC time as a way to represent the current based on a standard location irrespective of local conventions (irrespective of local time, daylight savings time, etc).
See here for further descriptions:
http://en.wikipedia.org/wiki/Greenwich_Mean_Time
http://en.wikipedia.org/wiki/Coordinated_Universal_TimeAlthough many technical people think it is silly that by default Windows expects BIOS time to be local time, it is retained for backward compatibility and the 99.9% of people that don’t dual boot and would be confused by BIOS showing UTC vs. Windows showing local time.
Much better explaination — Thank you
-
-
#6
maybe windows time is just fine, and apple time is the wrong way to do it?
So my question is, instead of fixing it in windows , how do i tell osx to that it should use the same time settings, that windows uses?
BTW Thanks for figuring out the issue in general!
-
-
#8
The registry addition worked for Windows 10.
Thanks!
-
-
#10
Oh my goodness. I’ve only had this problem since Windows 7. Since I only use Windows for gaming, I’ve just put up with it, occasionally asking Windows to re-sync. I always thought it was just a Windows-being-stupid thing and didn’t think it had to do with dual booting.
Thanks!
Если вы хотите увидеть на нашем сайте ответы на интересующие вас вопросы обо всём, что связано с техникой Apple, операционной системой Mac OS X (и её запуском на PC), пишите нам через форму заявки на обзор или форму обратной связи.
К нам поступил следующий вопрос:
день добрый!
на хакинтоше стоят Snow Leopard, Windows 7 и Ubuntu. постоянно сбивается время после перезагрузки (( мак ос всегда его на 4-5 часов назад переводит! подскажите, как исправить проблему
Проблема с синхронизацией времени актуальна не только для хакинтошей, но и для настоящих Маков, на которых Windows работает через Boot Camp. Её причина очень проста: Mac OS X всегда считает, что время, записанное в BIOS (или EFI), записано там в формате UTC — проще говоря, по Гринвичу. К нему она прибавляет соответствующую поправку на часовой пояс.
А Windows поступает иначе: она напрямую считывает время из BIOS. И если вы это время меняете, либо оно автоматически синхронизируется, то в BIOS оно запишется уже в исправленном формате: UTC+поправка.
Как решить это противоречие? Есть два подхода: один — со стороны Mac OS, другой — со стороны Windows и Linux.
Сразу скажем — это не лучший способ. Суть в том, что для Mac OS X мы задаём в качестве часового пояса время по Гринвичу. Например, в настройках (пульт Дата и время, вкладка Часовой пояс) выберите в качестве своего населённого пункта Рейкьявик.
Кроме того, на вкладке «Дата и время» обязательно отключите автоматическую синхронизацию времени, иначе получится ещё хуже, чем было.
После этих действий время в Windows всегда будет правильным, и Mac OS X не будет его портить. Но почему это не лучший способ? Дело в том, что если вы синхронизируете с Mac OS X какой-нибудь гаджет — например, iPhone, то неправильный часовой пояс будет искажать многие важные данные. К примеру, время входящих SMS тоже окажется гринвичским.
Решение средствами Windows и Linux
Другой способ — это заставить Windows и Linux считывать время из BIOS так же, как это делает Mac OS. К счастью, такая возможность действительно предусмотрена, но спрятана она очень глубоко.
В Windows вам придётся запустить из окна «Выполнить» программу regedit — Редактор реестра. Затем зайдите в ветку \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation и создайте там параметр DWORD с именем RealTimeIsUniversal и значением, равным единице:
В Linux (по крайней мере, в Ubuntu), необходимо отредактировать файл /etc/default/rcS в любом текстовом редакторе и заменить содержимое параметра «UTC=no» на «UTC=yes».
После этого перезагрузитесь в Mac OS X и выставите родной часовой пояс, заодно можете включить автоматическую синхронизацию времени через Интернет. После перезагрузки в Windows и Ubuntu вы увидите точно такое же время.
- IT
- Компьютеры
- Cancel
Бывает, что после использования Mac OS при загрузке в Windows время отображается неверно. (это кстати относится и к настоящим макам)
Причина в том что Mac OS думает что время в BIOS хранится в формате UTC (по Гринвичу) и изменяет его в соответствии со своим часовым поясом. Windows же напрямую берет время из BIOS, поэтому оно в ней начинает отображатся неверно (Mac его изменил).
Решение. В Windows запустите редактор реестра (Win+R и написать regedit). Найти там \HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro