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.

galacticninja
źródło
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ą.

RedGrittyBrick
źródło
+1 za kreatywne rozwiązanie. Byłbym ciekawy, czy to naprawdę działa, ale ...
sleske