I spend my life in two time zones – CET and PST/PDT. Coincidentally I also have Windows 8 dual boot. I thought that it would be nice if each installation ran in its own time zone. I mean, how hard can it be?
I knew about
RealTimeIsUniversal registry flag from a while back. I knew about some dangers involved with setting it. I knew why it is not UTC by default. I even knew that Microsoft does not really encourage use of that flag. But it seemed so perfect match for what I wanted to do – keep BIOS clock in UTC so that each Windows installation can have its own clock. If that meant that twice a year at 2 AM I would need to deal with broken system, so be it.
I carefully set flag in registry for both systems, rebooted, and went into despair mode. Using this flag caused whatever was local time on last shutdown to be used as UTC time on next boot. Every startup was bringing me further and further into past. It took me a while to find reason for it.
One benefit that Windows Time service provides is syncing back running clock value to BIOS on Windows shutdown. Since those two clocks are independent of one another and running clock is almost sure to be more accurate, this is something that you would expect and want. Unfortunately Windows Time service doesn’t care for
RealTimeIsUniversal flag and thus it (incorrectly) writes local time. On next Windows startup that value is used (correctly) as UTC time.
One solution was to disable Windows Time Service and deal with another NTP client but I decided against it. I actually liked Windows Time service and its features, least of which is fully functioning SNTP server hidden deep inside. I simply decided that living in single time-zone would work just fine.
Difficult question is whether this behavior (or lack thereof) is a bug. I would argue yes.
I am aware that I used “feature” that was most likely someone’s pet project and never properly supported by Microsoft. I am aware that burden of compatibility with previous Windows versions will mean that UTC can never be default clock. I am aware that BIOS will show weird time that might confuse users. But I don’t care.
Any user that would like to have UTC time in a CMOS is not a sort of user that would be confused by BIOS time mismatch. It is most probably user that swears at Windows every time they boot Linux distribution of their choice. Or it is Windows dual boot user sick of Windows adjusting daylight saving for each instance separately.
And I don’t care that
RealTimeIsUniversal is not supported. What is Microsoft waiting for? It is year 2013 and UTC has been with us for a long time now.
I don’t even care that kernel behaves correctly and it is Windows Time service at fault. Both components are part of Windows and they should work correctly together. We are not in world of legacy Linux distributions where Install All would fail with bunch of errors and developers blaming each other for using unsupported library. If Windows had one advantage it is integration of various parts in a single system. Don’t sell me that “component owner” story.
Will this get ever fixed? I doubt it. There is not enough people needing it and most of them are just used to current behavior anyhow. While this feature would bring harmony into Universe, 99.9% of Windows users wouldn’t even think about turning it on. Only way this will get implemented is if it becomes somebody’s pet project once more. And even then only to break once more in more distant version.
Consider this whole post as a grumbling of someone in need. :)