TimeZoneInfo.IsDaylightSavingTime Metoda

Definicja

Wskazuje, czy określona data i godzina przypada w zakresie czasu letniego dla strefy czasowej bieżącego TimeZoneInfo obiektu.

Przeciążenia

IsDaylightSavingTime(DateTime)

Wskazuje, czy określona data i godzina przypada w zakresie czasu letniego dla strefy czasowej bieżącego TimeZoneInfo obiektu.

IsDaylightSavingTime(DateTimeOffset)

Wskazuje, czy określona data i godzina przypada w zakresie czasu letniego dla strefy czasowej bieżącego TimeZoneInfo obiektu.

IsDaylightSavingTime(DateTime)

Źródło:
TimeZoneInfo.cs
Źródło:
TimeZoneInfo.cs
Źródło:
TimeZoneInfo.cs

Wskazuje, czy określona data i godzina przypada w zakresie czasu letniego dla strefy czasowej bieżącego TimeZoneInfo obiektu.

public:
 bool IsDaylightSavingTime(DateTime dateTime);
public bool IsDaylightSavingTime (DateTime dateTime);
member this.IsDaylightSavingTime : DateTime -> bool
Public Function IsDaylightSavingTime (dateTime As DateTime) As Boolean

Parametry

dateTime
DateTime

Wartość daty i godziny.

Zwraca

truedateTime jeśli parametr jest czasem letnim, w przeciwnym razie . false

Wyjątki

Właściwość KinddateTime wartości to Local i dateTime jest nieprawidłowym czasem.

Przykłady

W poniższym przykładzie zdefiniowano metodę o nazwie DisplayDateWithTimeZoneName , która używa TimeZoneInfo.IsDaylightSavingTime metody w celu określenia, czy nazwa czasu standardowego strefy czasowej lub nazwa czasu letniego ma być wyświetlana.

private void DisplayDateWithTimeZoneName(DateTime date1, TimeZoneInfo timeZone)
{
   Console.WriteLine("The time is {0:t} on {0:d} {1}", 
                     date1, 
                     timeZone.IsDaylightSavingTime(date1) ?
                         timeZone.DaylightName : timeZone.StandardName);   
}
// The example displays output similar to the following:
//    The time is 1:00 AM on 4/2/2006 Pacific Standard Time
let displayDateWithTimeZoneName (date1: DateTime) (timeZone: TimeZoneInfo) =
    printfn $"The time is {date1:t} on {date1:d} {if timeZone.IsDaylightSavingTime date1 then timeZone.DaylightName else timeZone.StandardName}" 
// The example displays output similar to the following:
//    The time is 1:00 AM on 4/2/2006 Pacific Standard Time
Private Sub DisplayDateWithTimeZoneName(date1 As Date, timeZone As TimeZoneInfo)
   Console.WriteLine("The time is {0:t} on {0:d} {1}", _
                     date1, _
                     IIf(timeZone.IsDaylightSavingTime(date1), _
                         timezone.DaylightName, timezone.StandardName))   
End Sub
' The example displays output similar to the following:
'    The time is 1:00 AM on 4/2/2006 Pacific Standard Time

Uwagi

Wartość zwracana parametru TimeZoneInfo.IsDaylightSavingTime ma wpływ na relację między strefą czasową reprezentowaną przez TimeZoneInfo obiekt i Kind właściwość parametru dateTime , jak pokazano w poniższej tabeli.

TimeZoneInfo, obiekt Właściwość DateTime.Kind Wynik
TimeZoneInfo.Local DateTimeKind.Local Określa, czy dateTime czas letni jest oszczędność czasu.
TimeZoneInfo.Local DateTimeKind.Utc Konwertuje dateTime z uniwersalnego czasu koordynowanego (UTC) na czas lokalny i określa, czy jest to czas letni.
TimeZoneInfo.Local DateTimeKind.Unspecified Przyjęto założenie, że dateTime reprezentuje czas lokalny i określa, czy jest to czas letni.
TimeZoneInfo.Utc DateTimeKind.Local, DateTimeKind.Unspecifiedlub DateTimeKind.Utc Zwraca wartość false (UTC nie obsługuje czasu letniego).
Dowolny inny TimeZoneInfo obiekt. DateTimeKind.Local Konwertuje czas lokalny na równoważny czas TimeZoneInfo obiektu, a następnie określa, czy ten ostatni jest czas letni.
Dowolny inny TimeZoneInfo obiekt. DateTimeKind.Utc Konwertuje czas UTC na równoważny czas TimeZoneInfo obiektu, a następnie określa, czy ten ostatni jest czas letni.
Dowolny inny TimeZoneInfo obiekt. DateTimeKind.Unspecified Określa, czy dateTime czas letni jest oszczędność czasu.

Jeśli strefa czasowa reprezentowana przez obiekt nie obsługuje czasu letniego TimeZoneInfo , metoda zawsze zwraca wartość false. Wiele stref czasowych, w tym Utc, nie obserwuj czasu letniego. Aby określić, czy strefa czasowa obsługuje czas letni, pobierz wartość jej SupportsDaylightSavingTime właściwości.

dateTime Jeśli parametr określa niejednoznaczny czas w strefie czasowej bieżącego obiektu, metoda interpretuje dateTime jako czas standardowy i zwraca false wartość , TimeZoneInfo.IsDaylightSavingTime jeśli jej Kind właściwość to DateTimeKind.Local lub DateTimeKind.Unspecified. Kind Jeśli właściwość to DateTimeKind.Utc, ta metoda wybierze poprawny niejednoznaczny czas i wskaże, czy jest to czas letni.

TimeZoneInfo.IsDaylightSavingTime(DateTime) Ponieważ metoda może zwrócić false datę i godzinę, która jest niejednoznaczna (tj. data i godzina, która może reprezentować czas standardowy lub czas letni w określonej strefie czasowej), TimeZoneInfo.IsAmbiguousTime(DateTime) metoda może być sparowana z IsDaylightSavingTime(DateTime) metodą w celu określenia, czy czas letni może być oszczędność czasu. Ponieważ niejednoznaczny czas jest taki, który może być zarówno czasem letnim, jak i standardowym, można wywołać metodę jako pierwszą, aby określić, IsAmbiguousTime(DateTime) czy data i godzina może być czasem letnim. Jeśli metoda zwróci falsemetodę , można wywołać metodę w IsDaylightSavingTime(DateTime) celu określenia, czy DateTime wartość jest czasem letnim. Poniższy przykład ilustruje tę technikę.

DateTime unclearDate = new DateTime(2007, 11, 4, 1, 30, 0);
// Test if time is ambiguous.
Console.WriteLine("In the {0}, {1} is {2}ambiguous.", 
                  TimeZoneInfo.Local.DisplayName, 
                  unclearDate, 
                  TimeZoneInfo.Local.IsAmbiguousTime(unclearDate) ? "" : "not ");
// Test if time is DST.
Console.WriteLine("In the {0}, {1} is {2}daylight saving time.", 
                  TimeZoneInfo.Local.DisplayName, 
                  unclearDate, 
                  TimeZoneInfo.Local.IsDaylightSavingTime(unclearDate) ? "" : "not ");
Console.WriteLine();    
// Report time as DST if it is either ambiguous or DST.
if (TimeZoneInfo.Local.IsAmbiguousTime(unclearDate) || 
    TimeZoneInfo.Local.IsDaylightSavingTime(unclearDate))
    Console.WriteLine("{0} may be daylight saving time in {1}.", 
                      unclearDate, TimeZoneInfo.Local.DisplayName);  
// The example displays the following output:
//    In the (GMT-08:00) Pacific Time (US & Canada), 11/4/2007 1:30:00 AM is ambiguous.
//    In the (GMT-08:00) Pacific Time (US & Canada), 11/4/2007 1:30:00 AM is not daylight saving time.
//    
//    11/4/2007 1:30:00 AM may be daylight saving time in (GMT-08:00) Pacific Time (US & Canada).
let unclearDate = DateTime(2007, 11, 4, 1, 30, 0)
// Test if time is ambiguous.
printfn $"""In the {TimeZoneInfo.Local.DisplayName}, {unclearDate} is {if TimeZoneInfo.Local.IsAmbiguousTime unclearDate then "" else "not "}ambiguous."""
// Test if time is DST.
printfn $"""In the {TimeZoneInfo.Local.DisplayName}, {unclearDate} is {if TimeZoneInfo.Local.IsDaylightSavingTime unclearDate then "" else "not "}daylight saving time.
"""
// Report time as DST if it is either ambiguous or DST.
if TimeZoneInfo.Local.IsAmbiguousTime unclearDate || TimeZoneInfo.Local.IsDaylightSavingTime unclearDate then
    printfn $"{unclearDate} may be daylight saving time in {TimeZoneInfo.Local.DisplayName}."

// The example displays the following output:
//    In the (GMT-08:00) Pacific Time (US & Canada), 11/4/2007 1:30:00 AM is ambiguous.
//    In the (GMT-08:00) Pacific Time (US & Canada), 11/4/2007 1:30:00 AM is not daylight saving time.
//    
//    11/4/2007 1:30:00 AM may be daylight saving time in (GMT-08:00) Pacific Time (US & Canada).
Dim unclearDate As Date = #11/4/2007 1:30AM#
' Test if time is ambiguous.
Console.WriteLine("In the {0}, {1} is {2}ambiguous.", _ 
                  TimeZoneInfo.Local.DisplayName, _
                  unclearDate, _
                  IIf(TimeZoneInfo.Local.IsAmbiguousTime(unclearDate), "", "not "))
' Test if time is DST.
Console.WriteLine("In the {0}, {1} is {2}daylight saving time.", _ 
                  TimeZoneInfo.Local.DisplayName, _
                  unclearDate, _
                  IIf(TimeZoneInfo.Local.IsDaylightSavingTime(unclearDate), "", "not "))
Console.WriteLine()    
' Report time as DST if it is either ambiguous or DST.
If TimeZoneInfo.Local.IsAmbiguousTime(unclearDate) OrElse _ 
   TimeZoneInfo.Local.IsDaylightSavingTime(unclearDate) Then
    Console.WriteLine("{0} may be daylight saving time in {1}.", _ 
                      unclearDate, TimeZoneInfo.Local.DisplayName)                                           
End If
' The example displays the following output:
'    In the (GMT-08:00) Pacific Time (US & Canada), 11/4/2007 1:30:00 AM is ambiguous.
'    In the (GMT-08:00) Pacific Time (US & Canada), 11/4/2007 1:30:00 AM is not daylight saving time.
'    
'    11/4/2007 1:30:00 AM may be daylight saving time in (GMT-08:00) Pacific Time (US & Canada).

dateTime Jeśli parametr określa nieprawidłowy czas, wywołanie metody zgłasza ArgumentException wartość , jeśli wartość dateTime właściwości parametru Kind to DateTimeKind.Local; w przeciwnym razie metoda zwraca falsewartość .

Wywołaj metodę, TimeZoneInfo.IsDaylightSavingTime aby określić, czy należy użyć wartości strefy czasowej, czy jej DaylightName wartości podczas wyświetlania nazwy strefy StandardName czasowej. Zobacz sekcję Przykład, aby zapoznać się z ilustracją.

Zobacz też

Dotyczy

IsDaylightSavingTime(DateTimeOffset)

Źródło:
TimeZoneInfo.cs
Źródło:
TimeZoneInfo.cs
Źródło:
TimeZoneInfo.cs

Wskazuje, czy określona data i godzina przypada w zakresie czasu letniego dla strefy czasowej bieżącego TimeZoneInfo obiektu.

public:
 bool IsDaylightSavingTime(DateTimeOffset dateTimeOffset);
public bool IsDaylightSavingTime (DateTimeOffset dateTimeOffset);
member this.IsDaylightSavingTime : DateTimeOffset -> bool
Public Function IsDaylightSavingTime (dateTimeOffset As DateTimeOffset) As Boolean

Parametry

dateTimeOffset
DateTimeOffset

Wartość daty i godziny.

Zwraca

truedateTimeOffset jeśli parametr jest czasem letnim, w przeciwnym razie . false

Uwagi

Wartość zwracana parametru TimeZoneInfo.IsDaylightSavingTime ma wpływ na relację między strefą czasową reprezentowaną przez TimeZoneInfo obiekt a Offset właściwością parametru dateTimeOffset . Jeśli dateTimeOffset nie odpowiada przesunięciom bieżącej strefy czasowej z uniwersalnego czasu koordynowanego (UTC), metoda konwertuje ten czas na godzinę w bieżącej strefie czasowej. Następnie określa, czy data i godzina to czas letni.

Jeśli strefa czasowa reprezentowana przez obiekt nie obsługuje czasu letniego TimeZoneInfo , metoda zawsze zwraca wartość false. Aby określić, czy strefa czasowa obsługuje czas letni, pobierz wartość jej SupportsDaylightSavingTime właściwości.

Zobacz też

Dotyczy