Sdílet prostřednictvím


TimeZoneInfo.IsDaylightSavingTime Metoda

Definice

Určuje, zda zadané datum a čas spadá do rozsahu letního času pro časové pásmo aktuálního TimeZoneInfo objektu.

Přetížení

IsDaylightSavingTime(DateTime)

Určuje, zda zadané datum a čas spadá do rozsahu letního času pro časové pásmo aktuálního TimeZoneInfo objektu.

IsDaylightSavingTime(DateTimeOffset)

Určuje, zda zadané datum a čas spadá do rozsahu letního času pro časové pásmo aktuálního TimeZoneInfo objektu.

IsDaylightSavingTime(DateTime)

Zdroj:
TimeZoneInfo.cs
Zdroj:
TimeZoneInfo.cs
Zdroj:
TimeZoneInfo.cs

Určuje, zda zadané datum a čas spadá do rozsahu letního času pro časové pásmo aktuálního TimeZoneInfo objektu.

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

Hodnota data a času

Návraty

true dateTime pokud je parametr letní čas, v opačném případě false.

Výjimky

Vlastnost KinddateTime hodnoty je Local a dateTime je neplatný čas.

Příklady

Následující příklad definuje metodu s názvem DisplayDateWithTimeZoneName , která používá metodu TimeZoneInfo.IsDaylightSavingTime k určení, zda se má zobrazit název standardního času časového pásma nebo název letního času.

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

Poznámky

Návratová hodnota TimeZoneInfo.IsDaylightSavingTime je ovlivněna relací mezi časovým pásmem reprezentovaným objektem TimeZoneInfo a Kind vlastností parametru dateTime , jak ukazuje následující tabulka.

Objekt TimeZoneInfo DateTime.Kind – vlastnost Výsledek
TimeZoneInfo.Local DateTimeKind.Local Určuje, zda dateTime je letní čas.
TimeZoneInfo.Local DateTimeKind.Utc Převede dateTime z koordinovaného univerzálního času (UTC) na místní čas a určí, zda se jedná o letní čas.
TimeZoneInfo.Local DateTimeKind.Unspecified Předpokládá, že dateTime představuje místní čas a určuje, zda je letní čas.
TimeZoneInfo.Utc DateTimeKind.Local, DateTimeKind.Unspecifiednebo DateTimeKind.Utc Vrátí ( false UTC nepodporuje letní čas).
Jakýkoli jiný TimeZoneInfo objekt. DateTimeKind.Local Převede místní čas na ekvivalentní čas objektu TimeZoneInfo a pak určí, zda je letní čas.
Jakýkoli jiný TimeZoneInfo objekt. DateTimeKind.Utc Převede UTC na ekvivalentní čas objektu TimeZoneInfo a pak určí, zda je tento čas letním časem.
Jakýkoli jiný TimeZoneInfo objekt. DateTimeKind.Unspecified Určuje, zda dateTime je letní čas.

Pokud časové pásmo reprezentované objektem TimeZoneInfo nepodporuje letní čas, metoda vždy vrátí false. Řada časových pásem, včetně Utc, nespozoruje letní čas. Chcete-li zjistit, zda časové pásmo podporuje letní čas, načtěte hodnotu jeho SupportsDaylightSavingTime vlastnosti.

dateTime Pokud parametr určuje nejednoznačný čas v časovém pásmu aktuálního objektuTimeZoneInfo.IsDaylightSavingTime, metoda se interpretuje dateTime jako standardní čas a vrátífalse, pokud je DateTimeKind.Local jeho Kind vlastnost nebo DateTimeKind.Unspecified. Kind Pokud je DateTimeKind.Utcvlastnost , tato metoda vybere správný nejednoznačný čas a určí, zda se jedná o letní čas.

TimeZoneInfo.IsDaylightSavingTime(DateTime) Vzhledem k tomu, že metoda se může vrátit false pro datum a čas, které jsou nejednoznačné (tj. datum a čas, které mohou představovat buď standardní čas, nebo letní čas v určitém časovém pásmu), lze metodu TimeZoneInfo.IsAmbiguousTime(DateTime) spárovat s IsDaylightSavingTime(DateTime) metodou a určit, zda může být čas letní čas. Vzhledem k tomu, že nejednoznačný čas je ten, který může být jak letní čas, tak standardní čas, lze metodu IsAmbiguousTime(DateTime) nejprve volat, aby se zjistilo, zda může být datum a čas letním časem. Pokud metoda vrátí false, lze metodu IsDaylightSavingTime(DateTime) volat, aby se určilo, zda DateTime je hodnota letního času. Následující příklad znázorňuje tuto techniku.

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 Pokud parametr určuje neplatný čas, volání metody vyvolá hodnotuArgumentException, pokud je DateTimeKind.Localhodnota vlastnosti parametru dateTimeKind ; v opačném případě metoda vrátí false.

Voláním TimeZoneInfo.IsDaylightSavingTime metody určíte, zda se má při zobrazení názvu časového pásma StandardName použít hodnota časového pásma nebo její DaylightName hodnota. Obrázek najdete v části Příklad.

Viz také

Platí pro

IsDaylightSavingTime(DateTimeOffset)

Zdroj:
TimeZoneInfo.cs
Zdroj:
TimeZoneInfo.cs
Zdroj:
TimeZoneInfo.cs

Určuje, zda zadané datum a čas spadá do rozsahu letního času pro časové pásmo aktuálního TimeZoneInfo objektu.

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

Hodnota data a času

Návraty

true dateTimeOffset pokud je parametr letní čas, v opačném případě false.

Poznámky

Návratová hodnota TimeZoneInfo.IsDaylightSavingTime je ovlivněna vztahem mezi časovým pásmem reprezentovaným objektem TimeZoneInfo a Offset vlastností parametru dateTimeOffset . Pokud dateTimeOffset neodpovídá posunu aktuálního časového pásma od koordinovaného univerzálního času (UTC), metoda převede tento čas na čas v aktuálním časovém pásmu. Pak určí, jestli je toto datum a čas letním časem.

Pokud časové pásmo reprezentované objektem TimeZoneInfo nepodporuje letní čas, metoda vždy vrátí false. Chcete-li zjistit, zda časové pásmo podporuje letní čas, načtěte hodnotu jeho SupportsDaylightSavingTime vlastnosti.

Viz také

Platí pro