DateTime.Kind Property
Gets a value that indicates whether the time represented by this instance is based on local time, Coordinated Universal Time (UTC), or neither.
Assembly: mscorlib (in mscorlib.dll)
Property Value
Type: System.DateTimeKindOne of the enumeration values that indicates what the current time represents. The default is Unspecified.
You can explicitly set the Kind property of a new DateTime value to a particular DateTimeKind value by calling the SpecifyKind method.
The Kind property allows a DateTime value to clearly reflect either Coordinated Universal Time (UTC) or the local time. In contrast, the DateTimeOffset structure can unambiguously reflect any time in any time zone as a single point in time.
The following example uses the SpecifyKind method to demonstrate how the Kind property influences the ToLocalTime and ToUniversalTime conversion methods.
// This code example demonstrates the DateTime Kind, Now, and // UtcNow properties, and the SpecifyKind(), ToLocalTime(), // and ToUniversalTime() methods. using System; class Sample { public static void Main() { // Get the date and time for the current moment, adjusted // to the local time zone. DateTime saveNow = DateTime.Now; // Get the date and time for the current moment expressed // as coordinated universal time (UTC). DateTime saveUtcNow = DateTime.UtcNow; DateTime myDt; // Display the value and Kind property of the current moment // expressed as UTC and local time. DisplayNow("UtcNow: ..........", saveUtcNow); DisplayNow("Now: .............", saveNow); Console.WriteLine(); // Change the Kind property of the current moment to // DateTimeKind.Utc and display the result. myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Utc); Display("Utc: .............", myDt); // Change the Kind property of the current moment to // DateTimeKind.Local and display the result. myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Local); Display("Local: ...........", myDt); // Change the Kind property of the current moment to // DateTimeKind.Unspecified and display the result. myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Unspecified); Display("Unspecified: .....", myDt); } // Display the value and Kind property of a DateTime structure, the // DateTime structure converted to local time, and the DateTime // structure converted to universal time. public static string datePatt = @"M/d/yyyy hh:mm:ss tt"; public static void Display(string title, DateTime inputDt) { DateTime dispDt = inputDt; string dtString; // Display the original DateTime. dtString = dispDt.ToString(datePatt); Console.WriteLine("{0} {1}, Kind = {2}", title, dtString, dispDt.Kind); // Convert inputDt to local time and display the result. // If inputDt.Kind is DateTimeKind.Utc, the conversion is performed. // If inputDt.Kind is DateTimeKind.Local, the conversion is not performed. // If inputDt.Kind is DateTimeKind.Unspecified, the conversion is // performed as if inputDt was universal time. dispDt = inputDt.ToLocalTime(); dtString = dispDt.ToString(datePatt); Console.WriteLine(" ToLocalTime: {0}, Kind = {1}", dtString, dispDt.Kind); // Convert inputDt to universal time and display the result. // If inputDt.Kind is DateTimeKind.Utc, the conversion is not performed. // If inputDt.Kind is DateTimeKind.Local, the conversion is performed. // If inputDt.Kind is DateTimeKind.Unspecified, the conversion is // performed as if inputDt was local time. dispDt = inputDt.ToUniversalTime(); dtString = dispDt.ToString(datePatt); Console.WriteLine(" ToUniversalTime: {0}, Kind = {1}", dtString, dispDt.Kind); Console.WriteLine(); } // Display the value and Kind property for DateTime.Now and DateTime.UtcNow. public static void DisplayNow(string title, DateTime inputDt) { string dtString = inputDt.ToString(datePatt); Console.WriteLine("{0} {1}, Kind = {2}", title, dtString, inputDt.Kind); } } /* This code example produces the following results: UtcNow: .......... 5/6/2005 09:34:42 PM, Kind = Utc Now: ............. 5/6/2005 02:34:42 PM, Kind = Local Utc: ............. 5/6/2005 02:34:42 PM, Kind = Utc ToLocalTime: 5/6/2005 07:34:42 AM, Kind = Local ToUniversalTime: 5/6/2005 02:34:42 PM, Kind = Utc Local: ........... 5/6/2005 02:34:42 PM, Kind = Local ToLocalTime: 5/6/2005 02:34:42 PM, Kind = Local ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc Unspecified: ..... 5/6/2005 02:34:42 PM, Kind = Unspecified ToLocalTime: 5/6/2005 07:34:42 AM, Kind = Local ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc */
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1