Use a API do SetTimeZoneInformation Não acredito que a MS tenha antecipado sua necessidade, mas pode fuso horário com um deslocamento de 10 minutos. Este artigo contém dados de exemplo para substituir a tabela de fuso horário - com uma pequena alteração, você pode conseguir o que deseja.
Atualização - aqui está o que eu obtive de vários documentos da MS
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Afghanistan 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"="Afghanistan Daylight Time" "Std"="Afghanistan Standard Time"
O exemplo acima é uma entrada de registro de exemplo. Anote a chave e o valor de TZI
This [TZI] structure specifies information specific to the time zone. Copy typedef struct _TIME_ZONE_INFORMATION { LONG Bias; WCHAR StandardName[32]; SYSTEMTIME StandardDate; LONG StandardBias; WCHAR DaylightName[32]; SYSTEMTIME DaylightDate; LONG DaylightBias; } TIME_ZONE_INFORMATION; Bias Specifies the current bias, in minutes, for local time translation on this computer. The bias is the difference, in minutes, between UTC and local time. All translations between UTC and local time are based on the following formula. UTC = local time + bias
O acima é para o WinCE, mas espero que o XP / Vista / 7 tenha estrutura semelhante para o TZI. Isso pode ser verificado decodificando algumas entradas de registro existentes e verificando se a estrutura corresponde.
Uma pessoa corajosa poderia usar o Regedit para criar novas entradas de registro definindo um novo fuso horário com um valor adequado de "polarização" de TZI. Eles poderiam então definir seu fuso horário para o criado.