Export (0) Print
Expand All

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.

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

'Declaration
Public ReadOnly Property Kind As DateTimeKind

Property Value

Type: System.DateTimeKind
One 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. 
Imports System

Class Sample
    Public Shared Sub Main() 
        ' Get the date and time for the current moment, adjusted  
        ' to the local time zone. 
        Dim saveNow As DateTime = DateTime.Now

        ' Get the date and time for the current moment expressed  
        ' as coordinated universal time (UTC). 
        Dim saveUtcNow As DateTime = DateTime.UtcNow
        Dim myDt As DateTime

        ' 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)
    End Sub 'Main

    ' 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 Shared datePatt As String = "M/d/yyyy hh:mm:ss tt" 

    Public Shared Sub Display(ByVal title As String, ByVal inputDt As DateTime) 
        Dim dispDt As DateTime = inputDt
        Dim dtString As String 

        ' 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()
    End Sub 'Display


    ' Display the value and Kind property for DateTime.Now and DateTime.UtcNow. 

    Public Shared Sub DisplayNow(ByVal title As String, ByVal inputDt As DateTime) 
        Dim dtString As String = inputDt.ToString(datePatt)
        Console.WriteLine("{0} {1}, Kind = {2}", title, dtString, inputDt.Kind)
    End Sub 'DisplayNow
End Class 'Sample


'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 
'

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0, 2.0, 1.0

Portable Class Library

Supported in: Portable Class Library

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8
Show:
© 2015 Microsoft