Benjamin said:
How do I convert Date to another TimeZone in C#? I am using .NET 1.1
right now.
3 solutions:
1) wait for .NET 3.5
see
http://msdn2.microsoft.com/en-us/library/system.timezoneinfo_members(VS.90).aspx
2) sniff in registry
code snippet:
public static int GetUTCOffset1(string target)
{
RegistryKey tzs =
Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey("Microsoft").OpenSubKey("Windows
NT").OpenSubKey("CurrentVersion").OpenSubKey("Time Zones");
foreach(string tzn in tzs.GetSubKeyNames())
{
if(tzn.Contains(target) ||
((string)tzs.OpenSubKey(tzn).GetValue("Display")).Contains(target))
{
return
-BitConverter.ToInt32((byte[])(tzs.OpenSubKey(tzn).GetValue("TZI")), 0);
}
}
throw new ArgumentException("Unknown timezone " + target);
}
3) use the Java support in vjslib
code snippet:
public static int GetUTCOffset2(string target)
{
java.util.TimeZone tz = java.util.TimeZone.getTimeZone(target);
return tz.getRawOffset() / 60000;
}
Arne
PS: There are a ton of additional problem in relation to summer time,
changes to/from summer time and historic dates, but the above should
get you started.