Version

IsDaylightSavingTime Method

Returns whether the specified date and time is within a daylight saving time period for the time zone represented by this TimeZoneInfo object.
Syntax
'Declaration
 
Public Function IsDaylightSavingTime( _
   ByVal time As Date _
) As Boolean
public bool IsDaylightSavingTime( 
   DateTime time
)

Parameters

time
The System.DateTime to check.
Remarks

Note: Starting in the spring of 2007, daylight saving time (DST) start and end dates have changed for several time zones, including all time zones in the United States. As a result of this change, the IsDaylightSavingTime method now relies more heavily on the Windows Registry than it did previously in order to function. If the time zone entries in the registry of the local computer are not up to date, the IsDaylightSavingTime method might return invalid values.

Note: If no daylight saving information is available in the registry, this property returns false.

Example
The following code sample demonstrates how to use the properties and methods on the TimeZoneInfo object to obtain information about the time zones registered on the local computer.

Imports Infragistics.Win

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        '	Get an array list of the time zones on this computer
        Dim timeZones As ArrayList = Infragistics.Win.Utilities.GetTimeZones()
        If timeZones Is Nothing Then Return

        '   Iterate the array list and display information on each time zone.
        Dim i As Int32
        Dim crlf As String = vbCrLf
        Dim tab As String = vbTab
        For i = 0 To timeZones.Count - 1

            Dim tzi As TimeZoneInfo = timeZones(i)

            Dim info As String = String.Empty
            info += "Time Zone: " + tzi.StandardName + crlf
            info += tab + "Daylight Name: " + tzi.DaylightName + crlf
            info += tab + "Display Name: " + tzi.DisplayName + crlf
            info += crlf
            info += tab + "UTC Offset: " + tzi.UtcOffset.TotalHours.ToString() + " hours" + crlf
            info += tab + "Additional Daylight Saving Time UTC Offset: " + tzi.DaylightUtcOffset.TotalHours.ToString() + " hours" + crlf
            info += tab + "Additional Standard Time UTC Offset: " + tzi.StandardUtcOffset.TotalHours.ToString() + " hours" + crlf

            If tzi.DaylightDate <> DateTime.MinValue Then
                info += tab + "Daylight savings time begins on " + tzi.DaylightDate.ToLongDateString() + crlf
            End If

            If tzi.StandardDate <> DateTime.MinValue Then
                info += tab + "Standard time begins on " + tzi.StandardDate.ToLongDateString() + crlf
            End If

            info += crlf
            info += tab + "The current date is " + tzi.Today.ToLongDateString() + crlf
            info += tab + "The current time is " + tzi.Now.ToShortTimeString() + crlf
            info += crlf

            Dim isDST As Boolean = tzi.IsDaylightSavingTime(DateTime.Now)
            info += tab + "Daylight savings time is "

            If Not isDST Then
                info += "not "
            End If

            info += "in effect." + crlf

            Dim time As DateTime = New DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 9, 0, 0)
            info += tab + "At 9AM (actual time) in the current time zone, the local time is " + tzi.ToLocalTime(time).ToShortTimeString() + crlf

            Debug.WriteLine(info)
        Next

    End Sub
using Infragistics.Win;
using System.Diagnostics;

		private void button1_Click(object sender, System.EventArgs e)
		{
			//	Get an array list of the time zones on this computer
			ArrayList timeZones = Infragistics.Win.Utilities.GetTimeZones();
			if ( timeZones == null )
				return;

			//	Iterate the array list and display information on each time zone.
			int i;
			string crlf = "\r\n";
			string tab = "\t";
			for ( i = 0; i < timeZones.Count; i ++ )
			{
				TimeZoneInfo tzi = timeZones[i] as TimeZoneInfo;

				string info = string.Empty;
				info += "Time Zone: " + tzi.StandardName + crlf;
				info += tab + "Daylight Name: " + tzi.DaylightName + crlf;
				info += tab + "Display Name: " + tzi.DisplayName + crlf;
				info += crlf;
				info += tab + "UTC Offset: " + tzi.UtcOffset.TotalHours.ToString() + " hours" + crlf;
				info += tab + "Additional Daylight Saving Time UTC Offset: " + tzi.DaylightUtcOffset.TotalHours.ToString() + " hours" + crlf;
				info += tab + "Additional Standard Time UTC Offset: " + tzi.StandardUtcOffset.TotalHours.ToString() + " hours" + crlf;

				if ( tzi.DaylightDate != DateTime.MinValue )
					info += tab + "Daylight savings time begins on " + tzi.DaylightDate.ToLongDateString() + crlf;

				if ( tzi.StandardDate != DateTime.MinValue )
					info += tab + "Standard time begins on " + tzi.StandardDate.ToLongDateString() + crlf;

				info += crlf;
				info += tab + "The current date is " + tzi.Today.ToLongDateString() + crlf;
				info += tab + "The current time is " + tzi.Now.ToShortTimeString() + crlf;
				info += crlf;

				bool isDST = tzi.IsDaylightSavingTime( DateTime.Now );
				info += tab + "Daylight savings time is ";
				
				if ( ! isDST )
					info += "not ";

				info += "in effect." + crlf;

				DateTime time = new DateTime( DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 9, 0, 0 );
          info += tab + "At 9AM (actual time) in the current time zone, the local time is " + tzi.ToLocalTime(time).ToShortTimeString() + crlf;

				Debug.WriteLine( info );
			}
		}
Requirements

Target Platforms: Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Server 2012, Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also