Condividi tramite


TimeZoneInfo.IsDaylightSavingTime Metodo

Definizione

Indica se una data e un'ora specificate rientrano nell'intervallo dell'ora legale per il fuso orario dell'oggetto TimeZoneInfo corrente.

Overload

IsDaylightSavingTime(DateTime)

Indica se una data e un'ora specificate rientrano nell'intervallo dell'ora legale per il fuso orario dell'oggetto TimeZoneInfo corrente.

IsDaylightSavingTime(DateTimeOffset)

Indica se una data e un'ora specificate rientrano nell'intervallo dell'ora legale per il fuso orario dell'oggetto TimeZoneInfo corrente.

IsDaylightSavingTime(DateTime)

Origine:
TimeZoneInfo.cs
Origine:
TimeZoneInfo.cs
Origine:
TimeZoneInfo.cs

Indica se una data e un'ora specificate rientrano nell'intervallo dell'ora legale per il fuso orario dell'oggetto TimeZoneInfo corrente.

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

Parametri

dateTime
DateTime

Valore di data e ora.

Restituisce

true se il parametro dateTime è un'ora legale; in caso contrario, false.

Eccezioni

La proprietà Kind del valore dateTime è Local e dateTime rappresenta un'ora non valida.

Esempio

Nell'esempio seguente viene definito un metodo denominato DisplayDateWithTimeZoneName che usa il metodo per determinare se visualizzare il TimeZoneInfo.IsDaylightSavingTime nome dell'ora legale o il nome dell'ora legale del fuso orario di un fuso orario.

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

Commenti

Il valore restituito di TimeZoneInfo.IsDaylightSavingTime è interessato dalla relazione tra il fuso orario rappresentato dall'oggetto TimeZoneInfo e la Kind proprietà del dateTime parametro, come illustrato nella tabella seguente.

Oggetto TimeZoneInfo Proprietà DateTime.Kind Risultato
TimeZoneInfo.Local DateTimeKind.Local Determina se dateTime è l'ora legale.
TimeZoneInfo.Local DateTimeKind.Utc Converte dateTime dall'ora UTC (Coordinated Universal Time) all'ora locale e determina se è ora legale.
TimeZoneInfo.Local DateTimeKind.Unspecified Presuppone che rappresenta dateTime l'ora locale e determina se è l'ora legale.
TimeZoneInfo.Utc DateTimeKind.Local, DateTimeKind.Unspecifiedo DateTimeKind.Utc Restituisce false (UTC non supporta l'ora legale).
Qualsiasi altro TimeZoneInfo oggetto. DateTimeKind.Local Converte l'ora locale nell'ora equivalente dell'oggetto e quindi determina se quest'ultimo è l'ora TimeZoneInfo legale.
Qualsiasi altro TimeZoneInfo oggetto. DateTimeKind.Utc Converte UTC nell'ora equivalente dell'oggetto e quindi determina se quest'ultimo è l'ora TimeZoneInfo legale.
Qualsiasi altro TimeZoneInfo oggetto. DateTimeKind.Unspecified Determina se dateTime è l'ora legale.

Se il fuso orario rappresentato dall'oggetto non supporta l'ora TimeZoneInfo legale, il metodo restituisce falsesempre . Un numero di fusi orari, tra Utccui , non osserva l'ora legale. Per determinare se un fuso orario supporta l'ora legale, recuperare il valore della relativa SupportsDaylightSavingTime proprietà.

Se il parametro specifica un'ora ambigua nel fuso orario dell'oggetto corrente, il TimeZoneInfo.IsDaylightSavingTimedateTime metodo interpreta dateTime come ora standard e restituisce false se la relativa Kind proprietà è DateTimeKind.Local o DateTimeKind.Unspecified. Se la proprietà è DateTimeKind.Utc, questo metodo seleziona l'ora Kind ambigua corretta e indica se è un'ora legale.

Poiché il TimeZoneInfo.IsDaylightSavingTime(DateTime) metodo può restituire false per una data e un'ora ambigua , ovvero una data e un'ora che può rappresentare un'ora legale o un'ora legale in un determinato fuso orario, il TimeZoneInfo.IsAmbiguousTime(DateTime) metodo può essere associato al IsDaylightSavingTime(DateTime) metodo per determinare se un'ora legale può essere un'ora legale. Poiché un'ora ambigua è una che può essere sia un'ora legale che un'ora solare, il IsAmbiguousTime(DateTime) metodo può essere chiamato prima per determinare se una data e un'ora legale possono essere un'ora legale. Se il metodo restituisce false, il IsDaylightSavingTime(DateTime) metodo può essere chiamato per determinare se il DateTime valore è un'ora legale. Nell'esempio seguente viene illustrata questa tecnica.

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).

Se il dateTime parametro specifica un tempo non valido, la chiamata al metodo genera un valore ArgumentException se il valore della dateTime proprietà del Kind parametro è DateTimeKind.Local; in caso contrario, il metodo restituisce false.

Chiamare il metodo per determinare se usare il TimeZoneInfo.IsDaylightSavingTime valore del fuso orario o il DaylightName relativo valore quando viene visualizzato il nome del StandardName fuso orario. Per un'illustrazione, vedere la sezione Esempio.

Vedi anche

Si applica a

IsDaylightSavingTime(DateTimeOffset)

Origine:
TimeZoneInfo.cs
Origine:
TimeZoneInfo.cs
Origine:
TimeZoneInfo.cs

Indica se una data e un'ora specificate rientrano nell'intervallo dell'ora legale per il fuso orario dell'oggetto TimeZoneInfo corrente.

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

Parametri

dateTimeOffset
DateTimeOffset

Valore di data e ora.

Restituisce

true se il parametro dateTimeOffset è un'ora legale; in caso contrario, false.

Commenti

Il valore restituito di TimeZoneInfo.IsDaylightSavingTime è interessato dalla relazione tra il fuso orario rappresentato dall'oggetto TimeZoneInfo e la Offset proprietà del dateTimeOffset parametro. Se dateTimeOffset non corrisponde all'offset del fuso orario corrente dall'ora UTC (Coordinated Universal Time), il metodo converte tale ora nell'ora nel fuso orario corrente. Determina quindi se tale data e ora è un'ora legale.

Se il fuso orario rappresentato dall'oggetto non supporta l'ora TimeZoneInfo legale, il metodo restituisce falsesempre . Per determinare se un fuso orario supporta l'ora legale, recuperare il valore della relativa SupportsDaylightSavingTime proprietà.

Vedi anche

Si applica a