Export (0) Print
Expand All

TimeZoneInfo.ConvertTimeToUtc Method (DateTime, TimeZoneInfo)

Converts the time in a specified time zone to Coordinated Universal Time (UTC).

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

public static DateTime ConvertTimeToUtc(
	DateTime dateTime,
	TimeZoneInfo sourceTimeZone
)

Parameters

dateTime
Type: System.DateTime

The date and time to convert.

sourceTimeZone
Type: System.TimeZoneInfo

The time zone of dateTime.

Return Value

Type: System.DateTime
The Coordinated Universal Time (UTC) that corresponds to the dateTime parameter. The DateTime object's Kind property is always set to DateTimeKind.Utc.

ExceptionCondition
ArgumentException

dateTime.Kind is DateTimeKind.Utc and sourceTimeZone does not equal TimeZoneInfo.Utc.

-or-

dateTime.Kind is DateTimeKind.Local and sourceTimeZone does not equal TimeZoneInfo.Local.

-or-

sourceTimeZone.IsInvalidDateTime(dateTime) returns true.

ArgumentNullException

sourceTimeZone is null.

If the Kind property of the dateTime parameter equals DateTimeKind.Utc and the sourceTimeZone parameter equals TimeZoneInfo.Utc, this method returns dateTime without performing any conversion.

If dateTime corresponds to an ambiguous time, this method assumes that it is the standard time of the source time zone. If dateTime corresponds to an invalid time, this method throws an ArgumentException.

If the Coordinated Universal Time (UTC) equivalent of dateTime is earlier than DateTime.MinValue or later that DateTime.MaxValue, this method returns MinValue or MaxValue, respectively.

Notes to Callers

On Windows XP systems, the method applies only the current adjustment rule to the time zone conversion if sourceTimeZone is TimeZoneInfo.Local. As a result, the method may not accurately convert times for periods before the current adjustment rule came into effect. For more information, see the Notes for Callers section in the Local property.

The following example retrieves the current date from the local system and converts it to Coordinated Universal Time (UTC), then converts it to Tokyo Standard Time, and finally converts from Tokyo Standard Time back to UTC. Note that the two UTC times are identical.

using System;

public class Example
{
   public static void Main()
   {
      // Get time in local time zone 
      DateTime thisTime = DateTime.Now;
      Console.WriteLine("Time in {0} zone: {1}", TimeZoneInfo.Local.IsDaylightSavingTime(thisTime) ?
                        TimeZoneInfo.Local.DaylightName : TimeZoneInfo.Local.StandardName, thisTime);
      Console.WriteLine("   UTC Time: {0}", TimeZoneInfo.ConvertTimeToUtc(thisTime, TimeZoneInfo.Local));
      // Get Tokyo Standard Time zone
      TimeZoneInfo tst = TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time");
      DateTime tstTime = TimeZoneInfo.ConvertTime(thisTime, TimeZoneInfo.Local, tst);      
      Console.WriteLine("Time in {0} zone: {1}", tst.IsDaylightSavingTime(tstTime) ?
                        tst.DaylightName : tst.StandardName, tstTime);
      Console.WriteLine("   UTC Time: {0}", TimeZoneInfo.ConvertTimeToUtc(tstTime, tst));
   }
}
// The example displays output like the following when run on a system in the 
// U.S. Pacific Standard Time zone: 
//       Time in Pacific Standard Time zone: 12/6/2013 10:57:51 AM 
//          UTC Time: 12/6/2013 6:57:51 PM 
//       Time in Tokyo Standard Time zone: 12/7/2013 3:57:51 AM 
//          UTC Time: 12/6/2013 6:57:51 PM

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft