Partager via


TimeZoneInfo.IsDaylightSavingTime Méthode

Définition

Indique si la date et l'heure spécifiées se trouvent dans la plage d'heure d'été du fuseau horaire de l'objet TimeZoneInfo actuel.

Surcharges

IsDaylightSavingTime(DateTime)

Indique si la date et l'heure spécifiées se trouvent dans la plage d'heure d'été du fuseau horaire de l'objet TimeZoneInfo actuel.

IsDaylightSavingTime(DateTimeOffset)

Indique si la date et l'heure spécifiées se trouvent dans la plage d'heure d'été du fuseau horaire de l'objet TimeZoneInfo actuel.

IsDaylightSavingTime(DateTime)

Source:
TimeZoneInfo.cs
Source:
TimeZoneInfo.cs
Source:
TimeZoneInfo.cs

Indique si la date et l'heure spécifiées se trouvent dans la plage d'heure d'été du fuseau horaire de l'objet TimeZoneInfo actuel.

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

Paramètres

dateTime
DateTime

Valeur de date et heure.

Retours

true si le paramètre dateTime est une heure d'été ; sinon, false.

Exceptions

La propriété Kind de la valeur dateTime est Local et dateTime est une date/heure non valide.

Exemples

L’exemple suivant définit une méthode nommée DisplayDateWithTimeZoneName qui utilise la méthode pour déterminer s’il faut afficher le TimeZoneInfo.IsDaylightSavingTime nom d’heure standard d’un fuseau horaire ou le nom de l’heure d’été.

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

Remarques

La valeur de retour de TimeZoneInfo.IsDaylightSavingTime est affectée par la relation entre le fuseau horaire représenté par l’objet TimeZoneInfo et la Kind propriété du paramètre, comme le dateTime montre le tableau suivant.

Objet TimeZoneInfo Propriété DateTime.Kind Résultats
TimeZoneInfo.Local DateTimeKind.Local Détermine si dateTime est l’heure d’été.
TimeZoneInfo.Local DateTimeKind.Utc dateTime Convertit le temps universel coordonné (UTC) en heure locale et détermine s’il s’agit de l’heure d’été.
TimeZoneInfo.Local DateTimeKind.Unspecified Suppose que représente dateTime l’heure locale et détermine s’il s’agit de l’heure d’été.
TimeZoneInfo.Utc DateTimeKind.Local, DateTimeKind.Unspecifiedou DateTimeKind.Utc Retourne false (UTC ne prend pas en charge l’heure d’été).
Tout autre TimeZoneInfo objet. DateTimeKind.Local Convertit l’heure locale en heure équivalente de l’objet TimeZoneInfo , puis détermine si cette dernière est l’heure d’été.
Tout autre TimeZoneInfo objet. DateTimeKind.Utc Convertit UTC en heure équivalente de l’objet TimeZoneInfo , puis détermine si ce dernier est l’heure d’été.
Tout autre TimeZoneInfo objet. DateTimeKind.Unspecified Détermine si dateTime est l’heure d’été.

Si le fuseau horaire représenté par l’objet ne prend pas en charge l’heure TimeZoneInfo d’été, la méthode retourne falsetoujours . Un certain nombre de fuseaux horaires, y compris Utc, n’observent pas l’heure d’été. Pour déterminer si un fuseau horaire prend en charge l’heure d’été, récupérez la valeur de sa SupportsDaylightSavingTime propriété.

Si le dateTime paramètre spécifie une heure ambiguë dans le fuseau horaire de l’objet actuel, la TimeZoneInfo.IsDaylightSavingTime méthode interprète dateTime comme heure standard et retourne false si sa Kind propriété est DateTimeKind.Local ou DateTimeKind.Unspecified. Si la Kind propriété est DateTimeKind.Utc, cette méthode sélectionne l’heure ambiguë correcte et indique s’il s’agit d’une heure d’été.

Étant donné que la TimeZoneInfo.IsDaylightSavingTime(DateTime) méthode peut retourner false une date et une heure ambiguës (c’est-à-dire une date et une heure qui peuvent représenter une heure standard ou une heure d’été dans un fuseau horaire particulier), la TimeZoneInfo.IsAmbiguousTime(DateTime) méthode peut être associée à la IsDaylightSavingTime(DateTime) méthode pour déterminer si une heure peut être une heure d’été. Étant donné qu’une heure ambiguë peut être à la fois une heure d’été et une heure standard, la IsAmbiguousTime(DateTime) méthode peut être appelée en premier pour déterminer si une date et une heure peuvent être une heure d’été. Si la méthode retourne false, la IsDaylightSavingTime(DateTime) méthode peut être appelée pour déterminer si la DateTime valeur est une heure d’été. L’exemple suivant illustre cette technique.

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

Si le dateTime paramètre spécifie une heure non valide, l’appel de méthode lève un ArgumentException si la valeur de la dateTime propriété du Kind paramètre est DateTimeKind.Local; sinon, la méthode retourne false.

Appelez la TimeZoneInfo.IsDaylightSavingTime méthode pour déterminer s’il faut utiliser la valeur d’un StandardName fuseau horaire ou sa DaylightName valeur lors de l’affichage du nom du fuseau horaire. Pour obtenir une illustration, consultez la section Exemple.

Voir aussi

S’applique à

IsDaylightSavingTime(DateTimeOffset)

Source:
TimeZoneInfo.cs
Source:
TimeZoneInfo.cs
Source:
TimeZoneInfo.cs

Indique si la date et l'heure spécifiées se trouvent dans la plage d'heure d'été du fuseau horaire de l'objet TimeZoneInfo actuel.

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

Paramètres

dateTimeOffset
DateTimeOffset

Valeur de date et heure.

Retours

true si le paramètre dateTimeOffset est une heure d'été ; sinon, false.

Remarques

La valeur de retour de TimeZoneInfo.IsDaylightSavingTime est affectée par la relation entre le fuseau horaire représenté par l’objet TimeZoneInfo et la Offset propriété du dateTimeOffset paramètre. Si dateTimeOffset ne correspond pas au décalage du fuseau horaire actuel par rapport au temps universel coordonné (UTC), la méthode convertit cette heure en heure dans le fuseau horaire actuel. Il détermine ensuite si cette date et cette heure sont une heure d’été.

Si le fuseau horaire représenté par l’objet ne prend pas en charge l’heure TimeZoneInfo d’été, la méthode retourne falsetoujours . Pour déterminer si un fuseau horaire prend en charge l’heure d’été, récupérez la valeur de sa SupportsDaylightSavingTime propriété.

Voir aussi

S’applique à