TimeZone.GetUtcOffset Method
Assembly: mscorlib (in mscorlib.dll)
Coordinated universal time (UTC) was previously known as Greenwich Mean Time (GMT). Local time is the date and time on the computer you are using. Offset is the difference between local time and UTC. That is:
local time = UTC + offset
time must be in the Gregorian calendar and the time zone represented by this instance. If time is in daylight saving time, this method returns the UTC offset to the daylight saving time zone. This method obtains the daylight saving time rule from the system.
For example, in the United States Pacific Standard time zone, which has -8 hours of offset, GetUtcOffset(new DateTime(1999, 1, 1)) returns -288000000000.
The following code example uses the GetUtcOffset method to return the Coordinated Universal Time (UTC) offset for several local times.
// Example of the TimeZone::ToLocalTime( DateTime ) and // TimeZone::GetUtcOffset( DateTime ) methods. using namespace System; int main() { String^ headFmt = "{0,-20}{1,-20}{2,-12}{3}"; // Get the local time zone and a base Coordinated Universal // Time (UTC). TimeZone^ localZone = TimeZone::CurrentTimeZone; DateTime baseUTC = DateTime(2000,1,1); Console::WriteLine( "This example of \n" " TimeZone::ToLocalTime( DateTime ) and\n" " TimeZone::GetUtcOffset( DateTime ) \ngenerates the " "following output, which varies depending on the time " "zone \nin which it is run. The example creates several " "Coordinated Universal \nTimes (UTC), displays the " "corresponding local times and UTC offsets, \nand shows " "if the times occur in daylight saving time (DST)." ); Console::WriteLine( "\nLocal time: {0}\n", localZone->StandardName ); Console::WriteLine( headFmt, "UTC", "Local Time", " Offset", "DST?" ); Console::WriteLine( headFmt, "---", "----------", " ------", "----" ); // Generate several UTC times. for ( int loopX = 0; loopX <= 10; loopX++ ) { // Calculate the local time and UTC offset. DateTime localTime = localZone->ToLocalTime( baseUTC ); TimeSpan localOffset = localZone->GetUtcOffset( localTime ); Console::WriteLine( "{0,-20:yyyy-MM-dd HH:mm}" "{1,-20:yyyy-MM-dd HH:mm}{2,-12}{3}", baseUTC, localTime, localOffset, localZone->IsDaylightSavingTime( localTime ) ); // Advance to another UTC. baseUTC = baseUTC.AddDays( 155.55 ); } } /* This example of TimeZone::ToLocalTime( DateTime ) and TimeZone::GetUtcOffset( DateTime ) generates the following output, which varies depending on the time zone in which it is run. The example creates several Coordinated Universal Times (UTC), displays the corresponding local times and UTC offsets, and shows if the times occur in daylight saving time (DST). Local time: Pacific Standard Time UTC Local Time Offset DST? --- ---------- ------ ---- 2000-01-01 00:00 1999-12-31 16:00 -08:00:00 False 2000-06-04 13:12 2000-06-04 06:12 -07:00:00 True 2000-11-07 02:24 2000-11-06 18:24 -08:00:00 False 2001-04-11 15:36 2001-04-11 08:36 -07:00:00 True 2001-09-14 04:48 2001-09-13 21:48 -07:00:00 True 2002-02-16 18:00 2002-02-16 10:00 -08:00:00 False 2002-07-22 07:12 2002-07-22 00:12 -07:00:00 True 2002-12-24 20:24 2002-12-24 12:24 -08:00:00 False 2003-05-29 09:36 2003-05-29 02:36 -07:00:00 True 2003-10-31 22:48 2003-10-31 14:48 -08:00:00 False 2004-04-04 12:00 2004-04-04 05:00 -07:00:00 True */
// Example of the TimeZone.ToLocalTime( DateTime ) and
// TimeZone.GetUtcOffset( DateTime ) methods.
import System.*;
class UTCTimeDemo
{
public static void main(String[] args)
{
final String headFmt = "{0,-20}{1,-20}{2,-12}{3}";
// Get the local time zone and a base Coordinated Universal
// Time (UTC).
TimeZone localZone = TimeZone.get_CurrentTimeZone();
DateTime baseUTC = new DateTime(2000, 1, 1);
Console.WriteLine(("This example of \n"
+ "TimeZone.ToLocalTime( DateTime ) and\n"
+ " TimeZone.GetUtcOffset( DateTime ) \ngenerates the "
+ "following output, which varies depending on the time "
+ "zone \nin which it is run. The example creates several "
+ "Coordinated Universal \nTimes (UTC), displays the "
+ "corresponding local times and UTC offsets, \nand shows "
+ "if the times occur in daylight saving time (DST)."));
Console.WriteLine("\nLocal time: {0}\n",localZone.get_StandardName());
Console.WriteLine(headFmt, new Object[] { "UTC", "Local Time",
" Offset","DST?" });
Console.WriteLine(headFmt, new Object[] { "---", "----------",
" ------", "----" });
// Generate several UTC times.
for (int loopX = 0; loopX <= 10; loopX++) {
// Calculate the local time and UTC offset.
DateTime localTime = localZone.ToLocalTime(baseUTC);
TimeSpan localOffset = localZone.GetUtcOffset(localTime);
Console.WriteLine("{0,-20:yyyy-MM-dd HH:mm}"
+ "{1,-20:yyyy-MM-dd HH:mm}{2,-12}{3}",
new Object[] {baseUTC, localTime, localOffset,
(System.Boolean)localZone.IsDaylightSavingTime(localTime) });
// Advance to another UTC.
baseUTC = baseUTC.AddDays(155.55);
}
} //main
} //UTCTimeDemo
/*
This example of
TimeZone.ToLocalTime( DateTime ) and
TimeZone.GetUtcOffset( DateTime )
generates the following output, which varies depending on the time zone
in which it is run. The example creates several Coordinated Universal
Times (UTC), displays the corresponding local times and UTC offsets,
and shows if the times occur in daylight saving time (DST).
Local time: Pacific Standard Time
UTC Local Time Offset DST?
--- ---------- ------ ----
2000-01-01 00:00 1999-12-31 16:00 -08:00:00 False
2000-06-04 13:12 2000-06-04 06:12 -07:00:00 True
2000-11-07 02:24 2000-11-06 18:24 -08:00:00 False
2001-04-11 15:36 2001-04-11 08:36 -07:00:00 True
2001-09-14 04:48 2001-09-13 21:48 -07:00:00 True
2002-02-16 18:00 2002-02-16 10:00 -08:00:00 False
2002-07-22 07:12 2002-07-22 00:12 -07:00:00 True
2002-12-24 20:24 2002-12-24 12:24 -08:00:00 False
2003-05-29 09:36 2003-05-29 02:36 -07:00:00 True
2003-10-31 22:48 2003-10-31 14:48 -08:00:00 False
2004-04-04 12:00 2004-04-04 05:00 -07:00:00 True
*/
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.