Zsynchronizuj czas systemowy Windows z serwerem czasu, ale przejdź o 10 minut od czasu serwera czasu


1

Czy istnieje oprogramowanie lub sposób na skonfigurowanie systemu Windows 7 w taki sposób, że mógłbym zsynchronizować czas z serwerem czasu, ale zegar mojego systemu przesunąć o 10 minut w stosunku do czasu serwera czasu?

Np. Podczas synchronizacji z serwerem czasu, a serwer czasu mówi, że jest godzina 07:00, zamiast synchronizacji z godziną 7:00, czas, który pojawi się w moim zegarze systemowym, to 07:10.


Ciekawe - dlaczego chcesz to zrobić? :) Poważne pytanie poboczne: czy kontrolujesz serwer czasu, czy tylko pulpit?
— DMA57361

@ DMA57361 Wolę, aby czas w moich zegarach był przesunięty o 10 minut (wszystkie zegary w moim domu i moim telefonie komórkowym są przesunięte o 10 minut w stosunku do czasu NIST). To głównie osobiste zarządzanie czasem i kwestia organizacyjna. To sprawia, że ​​unikam spóźnienia i 10 minut wcześniej. =) Wiem, że mogłem raz zsynchronizować i ręcznie zwiększyć czas na moim komputerze o 10 minut, ale wolę, aby mój komputer regularnie synchronizował swój czas z serwerami czasu NIST. Nie kontroluję serwera czasu, tylko pulpit. Będę używał serwerów czasu NIST.
— galacticninja

Należy pamiętać, że niektóre usługi sieciowe mogą być nieco wybredne na temat czasów na komputerach na obu końcach połączenia. Lepiej byłoby, gdybyś dokładnie ustawił czas systemowy i szukał programu zegarowego, który pozwala wyświetlić czas 10 minut przed czasem systemowym.
— Dave Sherohman,

1
@Dave Sherohman Znasz takie programy zegarowe?
— galacticninja

Odpowiedzi:


2

Użyj interfejsu API SetTimeZoneInformation Nie sądzę, że stwardnienie rozsiane przewidziało twoją potrzebę, ale może być możliwe zdefiniowanie niestandardowej strefy czasowej z 10-minutowym przesunięciem. Ten artykuł zawiera przykładowe dane do zastąpienia tabeli stref czasowych - z niewielką poprawką można osiągnąć to, co chcesz.


Aktualizacja - oto, co zebrałem z różnych dokumentów MS

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Time Zones \ Afganistan Standard Time]
„TZI” = hex: f2, fe, ff, ff, 00,00,00,00, c4, ff, ff, ff, 00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
„Display” = „(UTC + 04: 30) Kabul”
„Dlt” = „Afganistan czas letni”
„Std” = „Afganistan Standard Time”

Powyżej jest przykładowy wpis rejestru. Zwróć uwagę na klucz i wartość TZI

Ta struktura [TZI] określa informacje specyficzne dla strefy czasowej.

Kopiuj
typedef struct _TIME_ZONE_INFORMATION { 
  LONG Bias; 
  WCHAR StandardName [32]; 
  SYSTEMTIME StandardDate; 
  LONG StandardBias; 
  WCHAR DaylightName [32]; 
  SYSTEMTIME DaylightDate; 
  LONG DaylightBias; 
} TIME_ZONE_INFORMATION; 


Stronniczość
Określa bieżące odchylenie w minutach dla tłumaczenia czasu lokalnego na tym komputerze.
Odchylenie jest różnicą, w minutach, między czasem UTC i czasem lokalnym.
Wszystkie tłumaczenia między czasem UTC a czasem lokalnym oparte są na następującej formule.
UTC = czas lokalny + stronniczość 

Powyższe dotyczy WinCE, ale spodziewam się, że XP / Vista / 7 mają podobną strukturę dla TZI. Można to zweryfikować, dekodując niektóre istniejące wpisy rejestru i sprawdzając, czy struktura jest zgodna.

Odważna osoba może użyć Regedit do utworzenia nowych wpisów rejestru definiujących nową strefę czasową z odpowiednią wartością „stronniczości” TZI. Następnie mogli ustawić strefę czasową na właśnie utworzoną.


+1 za kreatywne rozwiązanie. Byłbym ciekawy, czy to naprawdę działa, ale ...
— sleske
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.