TimeZoneInfo.ConvertTime Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Convertit une heure en heure dans un fuseau horaire particulier.
Surcharges
ConvertTime(DateTime, TimeZoneInfo) |
Convertit une heure en heure dans un fuseau horaire particulier. |
ConvertTime(DateTimeOffset, TimeZoneInfo) |
Convertit une heure en heure dans un fuseau horaire particulier. |
ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) |
Convertit une heure d’un fuseau horaire à un autre. |
ConvertTime(DateTime, TimeZoneInfo)
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
Convertit une heure en heure dans un fuseau horaire particulier.
public:
static DateTime ConvertTime(DateTime dateTime, TimeZoneInfo ^ destinationTimeZone);
public static DateTime ConvertTime (DateTime dateTime, TimeZoneInfo destinationTimeZone);
static member ConvertTime : DateTime * TimeZoneInfo -> DateTime
Public Shared Function ConvertTime (dateTime As DateTime, destinationTimeZone As TimeZoneInfo) As DateTime
Paramètres
- dateTime
- DateTime
Date et heure à convertir.
- destinationTimeZone
- TimeZoneInfo
Fuseau horaire vers lequel convertir dateTime
.
Retours
Date et heure dans le fuseau horaire de destination.
Exceptions
La valeur du paramètre dateTime
représente une heure non valide.
La valeur du paramètre destinationTimeZone
est null
.
Exemples
L’exemple suivant convertit un tableau de valeurs de date et d’heure en heures dans le fuseau horaire est des États-Unis et du Canada. Il indique que le fuseau horaire source dépend de la propriété DateTime.Kind de la valeur DateTime source. Il illustre également que la méthode ConvertTime prend en compte les ajustements de fuseau horaire, car un ajustement de fuseau horaire se produit dans les fuseaux horaires source et de destination à 2 h 00 le 7 novembre 2010.
using System;
public class Example
{
public static void Main()
{
// Define times to be converted.
DateTime[] times = { new DateTime(2010, 1, 1, 0, 1, 0),
new DateTime(2010, 1, 1, 0, 1, 0, DateTimeKind.Utc),
new DateTime(2010, 1, 1, 0, 1, 0, DateTimeKind.Local),
new DateTime(2010, 11, 6, 23, 30, 0),
new DateTime(2010, 11, 7, 2, 30, 0) };
// Retrieve the time zone for Eastern Standard Time (U.S. and Canada).
TimeZoneInfo est;
try {
est = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
}
catch (TimeZoneNotFoundException) {
Console.WriteLine("Unable to retrieve the Eastern Standard time zone.");
return;
}
catch (InvalidTimeZoneException) {
Console.WriteLine("Unable to retrieve the Eastern Standard time zone.");
return;
}
// Display the current time zone name.
Console.WriteLine("Local time zone: {0}\n", TimeZoneInfo.Local.DisplayName);
// Convert each time in the array.
foreach (DateTime timeToConvert in times)
{
DateTime targetTime = TimeZoneInfo.ConvertTime(timeToConvert, est);
Console.WriteLine("Converted {0} {1} to {2}.", timeToConvert,
timeToConvert.Kind, targetTime);
}
}
}
// The example displays the following output:
// Local time zone: (GMT-08:00) Pacific Time (US & Canada)
//
// Converted 1/1/2010 12:01:00 AM Unspecified to 1/1/2010 3:01:00 AM.
// Converted 1/1/2010 12:01:00 AM Utc to 12/31/2009 7:01:00 PM.
// Converted 1/1/2010 12:01:00 AM Local to 1/1/2010 3:01:00 AM.
// Converted 11/6/2010 11:30:00 PM Unspecified to 11/7/2010 1:30:00 AM.
// Converted 11/7/2010 2:30:00 AM Unspecified to 11/7/2010 5:30:00 AM.
open System
// Define times to be converted.
let times =
[| DateTime(2010, 1, 1, 0, 1, 0)
DateTime(2010, 1, 1, 0, 1, 0, DateTimeKind.Utc)
DateTime(2010, 1, 1, 0, 1, 0, DateTimeKind.Local)
DateTime(2010, 11, 6, 23, 30, 0)
DateTime(2010, 11, 7, 2, 30, 0) |]
// Retrieve the time zone for Eastern Standard Time (U.S. and Canada).
try
let est = TimeZoneInfo.FindSystemTimeZoneById "Eastern Standard Time"
// Display the current time zone name.
printfn $"Local time zone: {TimeZoneInfo.Local.DisplayName}\n"
// Convert each time in the array.
for timeToConvert in times do
let targetTime = TimeZoneInfo.ConvertTime(timeToConvert, est)
printfn $"Converted {timeToConvert} {timeToConvert.Kind} to {targetTime}."
with
| :? TimeZoneNotFoundException ->
printfn "Unable to retrieve the Eastern Standard time zone."
| :? InvalidTimeZoneException ->
printfn "Unable to retrieve the Eastern Standard time zone."
// The example displays the following output:
// Local time zone: (GMT-08:00) Pacific Time (US & Canada)
//
// Converted 1/1/2010 12:01:00 AM Unspecified to 1/1/2010 3:01:00 AM.
// Converted 1/1/2010 12:01:00 AM Utc to 12/31/2009 7:01:00 PM.
// Converted 1/1/2010 12:01:00 AM Local to 1/1/2010 3:01:00 AM.
// Converted 11/6/2010 11:30:00 PM Unspecified to 11/7/2010 1:30:00 AM.
// Converted 11/7/2010 2:30:00 AM Unspecified to 11/7/2010 5:30:00 AM.
Module Example
Public Sub Main()
' Define times to be converted.
Dim times() As Date = { #1/1/2010 12:01AM#, _
DateTime.SpecifyKind(#1/1/2010 12:01AM#, DateTimeKind.Utc), _
DateTime.SpecifyKind(#1/1/2010 12:01AM#, DateTimeKind.Local), _
#11/6/2010 11:30PM#, #11/7/2010 2:30AM# }
' Retrieve the time zone for Eastern Standard Time (U.S. and Canada).
Dim est As TimeZoneInfo
Try
est = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")
Catch e As TimeZoneNotFoundException
Console.WriteLine("Unable to retrieve the Eastern Standard time zone.")
Exit Sub
Catch e As InvalidTimeZoneException
Console.WriteLine("Unable to retrieve the Eastern Standard time zone.")
Exit Sub
End Try
' Display the current time zone name.
Console.WriteLine("Local time zone: {0}", TimeZoneInfo.Local.DisplayName)
Console.WriteLine()
' Convert each time in the array.
For Each timeToConvert As Date In times
Dim targetTime As Date = TimeZoneInfo.ConvertTime(timeToConvert, est)
Console.WriteLine("Converted {0} {1} to {2}.", timeToConvert, _
timeToConvert.Kind, targetTime)
Next
End Sub
End Module
' The example displays the following output:
' Local time zone: (GMT-08:00) Pacific Time (US & Canada)
'
' Converted 1/1/2010 12:01:00 AM Unspecified to 1/1/2010 3:01:00 AM.
' Converted 1/1/2010 12:01:00 AM Utc to 12/31/2009 7:01:00 PM.
' Converted 1/1/2010 12:01:00 AM Local to 1/1/2010 3:01:00 AM.
' Converted 11/6/2010 11:30:00 PM Unspecified to 11/7/2010 1:30:00 AM.
' Converted 11/7/2010 2:30:00 AM Unspecified to 11/7/2010 5:30:00 AM.
Remarques
Lors de l’exécution de la conversion, la méthode ConvertTime(DateTimeOffset, TimeZoneInfo) applique toutes les règles d’ajustement en vigueur dans le fuseau horaire destinationTimeZone
.
Cette surcharge de la méthode ConvertTime(DateTime, TimeZoneInfo) détermine le fuseau horaire source à partir de la valeur de la propriété Kind du paramètre dateTime
, comme le montre le tableau suivant.
Valeur de propriété Kind | Fuseau horaire source | Comportement de la méthode |
---|---|---|
DateTimeKind.Local | Local | Convertit l’heure locale en heure dans destinationTimeZone . |
DateTimeKind.Utc | Utc | Convertit le temps universel coordonné (UTC) en heure en destinationTimeZone . |
DateTimeKind.Unspecified | Supposé être Local. | Convertit l’heure locale en heure dans destinationTimeZone . |
La propriété Kind de la valeur de DateTime retournée est définie comme indiqué dans le tableau suivant.
Condition | Valeur de la propriété Kind retournée |
---|---|
Le destinationTimeZone est TimeZoneInfo.Utc. |
DateTimeKind.Utc |
Le destinationTimeZone est TimeZoneInfo.Local. |
DateTimeKind.Local |
Toutes les autres valeurs de date et d’heure et les fuseaux horaires de destination. | DateTimeKind.Unspecified |
Si la valeur du paramètre dateTime
est une heure locale ambiguë, elle est interprétée comme une heure standard. Si le paramètre dateTime
est une heure locale non valide, cette méthode lève une ArgumentException.
Si la conversion de dateTime
entraîne une valeur de date et d’heure antérieure à DateTime.MinValue ou ultérieure à DateTime.MaxValue, cette méthode retourne DateTime.MinValue ou DateTime.MaxValue, respectivement.
Vous pouvez également effectuer une conversion vers ou depuis UTC en appelant les méthodes ConvertTimeFromUtc et ConvertTimeToUtc.
Voir aussi
S’applique à
ConvertTime(DateTimeOffset, TimeZoneInfo)
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
Convertit une heure en heure dans un fuseau horaire particulier.
public:
static DateTimeOffset ConvertTime(DateTimeOffset dateTimeOffset, TimeZoneInfo ^ destinationTimeZone);
public static DateTimeOffset ConvertTime (DateTimeOffset dateTimeOffset, TimeZoneInfo destinationTimeZone);
static member ConvertTime : DateTimeOffset * TimeZoneInfo -> DateTimeOffset
Public Shared Function ConvertTime (dateTimeOffset As DateTimeOffset, destinationTimeZone As TimeZoneInfo) As DateTimeOffset
Paramètres
- dateTimeOffset
- DateTimeOffset
Date et heure à convertir.
- destinationTimeZone
- TimeZoneInfo
Fuseau horaire vers lequel convertir dateTimeOffset
.
Retours
Date et heure dans le fuseau horaire de destination.
Exceptions
La valeur du paramètre destinationTimeZone
est null
.
Exemples
L’exemple suivant convertit un tableau de valeurs de DateTimeOffset en heures dans le fuseau horaire est des États-Unis et du Canada. Il illustre que la méthode ConvertTime prend en compte les ajustements de fuseau horaire, car un ajustement de fuseau horaire se produit à la fois dans les fuseaux horaires source et de destination à 2 h 00 le 7 novembre 2010.
using System;
public class Example
{
public static void Main()
{
// Define times to be converted.
DateTime time1 = new DateTime(2010, 1, 1, 12, 1, 0);
DateTime time2 = new DateTime(2010, 11, 6, 23, 30, 0);
DateTimeOffset[] times = { new DateTimeOffset(time1, TimeZoneInfo.Local.GetUtcOffset(time1)),
new DateTimeOffset(time1, TimeSpan.Zero),
new DateTimeOffset(time2, TimeZoneInfo.Local.GetUtcOffset(time2)),
new DateTimeOffset(time2.AddHours(3), TimeZoneInfo.Local.GetUtcOffset(time2.AddHours(3))) };
// Retrieve the time zone for Eastern Standard Time (U.S. and Canada).
TimeZoneInfo est;
try {
est = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
}
catch (TimeZoneNotFoundException) {
Console.WriteLine("Unable to retrieve the Eastern Standard time zone.");
return;
}
catch (InvalidTimeZoneException) {
Console.WriteLine("Unable to retrieve the Eastern Standard time zone.");
return;
}
// Display the current time zone name.
Console.WriteLine("Local time zone: {0}\n", TimeZoneInfo.Local.DisplayName);
// Convert each time in the array.
foreach (DateTimeOffset timeToConvert in times)
{
DateTimeOffset targetTime = TimeZoneInfo.ConvertTime(timeToConvert, est);
Console.WriteLine("Converted {0} to {1}.", timeToConvert, targetTime);
}
}
}
// The example displays the following output:
// Local time zone: (GMT-08:00) Pacific Time (US & Canada)
//
// Converted 1/1/2010 12:01:00 AM -08:00 to 1/1/2010 3:01:00 AM -05:00.
// Converted 1/1/2010 12:01:00 AM +00:00 to 12/31/2009 7:01:00 PM -05:00.
// Converted 11/6/2010 11:30:00 PM -07:00 to 11/7/2010 1:30:00 AM -05:00.
// Converted 11/7/2010 2:30:00 AM -08:00 to 11/7/2010 5:30:00 AM -05:00.
open System
// Define times to be converted.
let time1 = DateTime(2010, 1, 1, 12, 1, 0)
let time2 = DateTime(2010, 11, 6, 23, 30, 0)
let times =
[| DateTimeOffset(time1, TimeZoneInfo.Local.GetUtcOffset time1)
DateTimeOffset(time1, TimeSpan.Zero)
DateTimeOffset(time2, TimeZoneInfo.Local.GetUtcOffset time2)
DateTimeOffset(time2.AddHours 3, TimeZoneInfo.Local.GetUtcOffset(time2.AddHours 3)) |]
// Retrieve the time zone for Eastern Standard Time (U.S. and Canada).
try
let est = TimeZoneInfo.FindSystemTimeZoneById "Eastern Standard Time"
// Display the current time zone name.
printfn $"Local time zone: {TimeZoneInfo.Local.DisplayName}\n"
// Convert each time in the array.
for timeToConvert in times do
let targetTime = TimeZoneInfo.ConvertTime(timeToConvert, est)
printfn $"Converted {timeToConvert} to {targetTime}."
with
| :? TimeZoneNotFoundException ->
printfn "Unable to retrieve the Eastern Standard time zone."
| :? InvalidTimeZoneException ->
printfn "Unable to retrieve the Eastern Standard time zone."
// The example displays the following output:
// Local time zone: (GMT-08:00) Pacific Time (US & Canada)
//
// Converted 1/1/2010 12:01:00 AM -08:00 to 1/1/2010 3:01:00 AM -05:00.
// Converted 1/1/2010 12:01:00 AM +00:00 to 12/31/2009 7:01:00 PM -05:00.
// Converted 11/6/2010 11:30:00 PM -07:00 to 11/7/2010 1:30:00 AM -05:00.
// Converted 11/7/2010 2:30:00 AM -08:00 to 11/7/2010 5:30:00 AM -05:00.
Module Example
Public Sub Main()
' Define times to be converted.
Dim time1 As Date = #1/1/2010 12:01AM#
Dim time2 As Date = #11/6/2010 11:30PM#
Dim times() As DateTimeOffset = { New DateTimeOffset(time1, TimeZoneInfo.Local.GetUtcOffset(time1)), _
New DateTimeOffset(time1, Timespan.Zero), _
New DateTimeOffset(time2, TimeZoneInfo.Local.GetUtcOffset(time2)), _
New DateTimeOffset(time2.AddHours(3), TimeZoneInfo.Local.GetUtcOffset(time2.AddHours(3))) }
' Retrieve the time zone for Eastern Standard Time (U.S. and Canada).
Dim est As TimeZoneInfo
Try
est = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")
Catch e As TimeZoneNotFoundException
Console.WriteLine("Unable to retrieve the Eastern Standard time zone.")
Exit Sub
Catch e As InvalidTimeZoneException
Console.WriteLine("Unable to retrieve the Eastern Standard time zone.")
Exit Sub
End Try
' Display the current time zone name.
Console.WriteLine("Local time zone: {0}", TimeZoneInfo.Local.DisplayName)
Console.WriteLine()
' Convert each time in the array.
For Each timeToConvert As DateTimeOffset In times
Dim targetTime As DateTimeOffset = TimeZoneInfo.ConvertTime(timeToConvert, est)
Console.WriteLine("Converted {0} to {1}.", timeToConvert, targetTime)
Next
End Sub
End Module
' The example displays the following output:
' Local time zone: (GMT-08:00) Pacific Time (US & Canada)
'
' Converted 1/1/2010 12:01:00 AM -08:00 to 1/1/2010 3:01:00 AM -05:00.
' Converted 1/1/2010 12:01:00 AM +00:00 to 12/31/2009 7:01:00 PM -05:00.
' Converted 11/6/2010 11:30:00 PM -07:00 to 11/7/2010 1:30:00 AM -05:00.
' Converted 11/7/2010 2:30:00 AM -08:00 to 11/7/2010 5:30:00 AM -05:00.
Remarques
Lors de l’exécution de la conversion, la méthode ConvertTime(DateTimeOffset, TimeZoneInfo) applique toutes les règles d’ajustement en vigueur dans le fuseau horaire destinationTimeZone
.
Cette surcharge diffère des autres surcharges de la méthode ConvertTime en acceptant une valeur DateTimeOffset comme premier paramètre. Cela identifie la date et l’heure comme décalage de l’heure universelle coordonnée (UTC) plutôt que comme date et heure dans un fuseau horaire particulier. Par conséquent, le paramètre dateTimeOffset
ne peut pas représenter une heure ambiguë ou une heure non valide.
Lors de la conversion de la valeur dateTimeOffset
en heure dans le fuseau horaire de destination, cette méthode prend en compte toutes les règles d’ajustement en vigueur dans le fuseau horaire de destination.
Si la conversion de dateTimeOffset
entraîne une valeur de date et d’heure antérieure à DateTimeOffset.MinValue ou ultérieure à DateTimeOffset.MaxValue, cette méthode retourne DateTimeOffset.MinValue ou DateTimeOffset.MaxValue, respectivement.
Voir aussi
S’applique à
ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo)
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
- Source:
- TimeZoneInfo.cs
Convertit une heure d’un fuseau horaire à un autre.
public:
static DateTime ConvertTime(DateTime dateTime, TimeZoneInfo ^ sourceTimeZone, TimeZoneInfo ^ destinationTimeZone);
public static DateTime ConvertTime (DateTime dateTime, TimeZoneInfo sourceTimeZone, TimeZoneInfo destinationTimeZone);
static member ConvertTime : DateTime * TimeZoneInfo * TimeZoneInfo -> DateTime
Public Shared Function ConvertTime (dateTime As DateTime, sourceTimeZone As TimeZoneInfo, destinationTimeZone As TimeZoneInfo) As DateTime
Paramètres
- dateTime
- DateTime
Date et heure à convertir.
- sourceTimeZone
- TimeZoneInfo
Fuseau horaire de dateTime
.
- destinationTimeZone
- TimeZoneInfo
Fuseau horaire vers lequel convertir dateTime
.
Retours
Date et heure dans le fuseau horaire de destination qui correspond au paramètre dateTime
dans le fuseau horaire source.
Exceptions
La propriété Kind du paramètre dateTime
est Local, mais le paramètre sourceTimeZone
n’est pas égal Local.
-ou-
La propriété Kind du paramètre dateTime
est Utc, mais le paramètre sourceTimeZone
n’est pas égal Utc.
-ou-
Le paramètre dateTime
est un temps non valide (autrement dit, il représente une heure qui n’existe pas en raison des règles d’ajustement d’un fuseau horaire).
Le paramètre sourceTimeZone
est null
.
-ou-
Le paramètre destinationTimeZone
est null
.
Exemples
L’exemple suivant illustre l’utilisation de la méthode ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) pour passer de l’heure standard hawaïenne à l’heure locale.
DateTime hwTime = new DateTime(2007, 02, 01, 08, 00, 00);
try
{
TimeZoneInfo hwZone = TimeZoneInfo.FindSystemTimeZoneById("Hawaiian Standard Time");
Console.WriteLine("{0} {1} is {2} local time.",
hwTime,
hwZone.IsDaylightSavingTime(hwTime) ? hwZone.DaylightName : hwZone.StandardName,
TimeZoneInfo.ConvertTime(hwTime, hwZone, TimeZoneInfo.Local));
}
catch (TimeZoneNotFoundException)
{
Console.WriteLine("The registry does not define the Hawaiian Standard Time zone.");
}
catch (InvalidTimeZoneException)
{
Console.WriteLine("Registry data on the Hawaiian Standard Time zone has been corrupted.");
}
let hwTime = DateTime(2007, 02, 01, 08, 00, 00)
try
let hwZone = TimeZoneInfo.FindSystemTimeZoneById "Hawaiian Standard Time"
printfn $"{hwTime} {if hwZone.IsDaylightSavingTime hwTime then hwZone.DaylightName else hwZone.StandardName} is {TimeZoneInfo.ConvertTime(hwTime, hwZone, TimeZoneInfo.Local)} local time."
with
| :? TimeZoneNotFoundException ->
printfn "The registry does not define the Hawaiian Standard Time zone."
| :? InvalidTimeZoneException ->
printfn "Registry data on the Hawaiian Standard Time zone has been corrupted."
Dim hwTime As Date = #2/01/2007 8:00:00 AM#
Try
Dim hwZone As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Hawaiian Standard Time")
Console.WriteLine("{0} {1} is {2} local time.", _
hwTime, _
IIf(hwZone.IsDaylightSavingTime(hwTime), hwZone.DaylightName, hwZone.StandardName), _
TimeZoneInfo.ConvertTime(hwTime, hwZone, TimeZoneInfo.Local))
Catch e As TimeZoneNotFoundException
Console.WriteLine("The registry does not define the Hawaiian Standard Time zone.")
Catch e As InvalidTimeZoneException
Console.WriteLine("Registry data on the Hawaiian Standard Time zone has been corrupted.")
End Try
Remarques
Lors de l’exécution de la conversion, la méthode ConvertTime applique toutes les règles d’ajustement en vigueur dans le fuseau horaire destinationTimeZone
.
La valeur de la propriété Kind du paramètre dateTime
doit correspondre au paramètre sourceTimeZone
, comme le montre le tableau suivant.
Valeur DateTime.Kind | valeur sourceTimeZone | Comportement de la méthode |
---|---|---|
DateTimeKind.Utc | Est égal à TimeZoneInfo.Utc. | Convertit dateTime en heure du fuseau horaire de destination. |
DateTimeKind.Utc | N’est pas égal TimeZoneInfo.Utc. | Lève une ArgumentException. |
DateTimeKind.Local | Est égal à TimeZoneInfo.Local. | Convertit dateTime en heure du fuseau horaire de destination. |
DateTimeKind.Local | N’est pas égal TimeZoneInfo.Local. | Lève une ArgumentException. |
DateTimeKind.Unspecified | Quelconque. | Convertit dateTime en heure du fuseau horaire de destination. |
Vous pouvez également effectuer une conversion en temps universel coordonné (UTC) ou en appelant les méthodes ConvertTimeFromUtc et ConvertTimeToUtc.
La propriété Kind de la valeur de DateTime retournée est définie comme indiqué dans le tableau suivant.
Condition | Valeur de la propriété Kind retournée |
---|---|
L’argument destinationTimeZone est TimeZoneInfo.Utc. |
DateTimeKind.Utc |
L’argument destinationTimeZone est TimeZoneInfo.Local. |
DateTimeKind.Local |
Toutes les autres valeurs de date et d’heure, les fuseaux horaires sources et les fuseaux horaires de destination. | DateTimeKind.Unspecified |
Si la valeur du paramètre dateTime
est une heure ambiguë dans le fuseau horaire source, elle est interprétée comme une heure standard. Si le paramètre dateTime
est une heure non valide dans le fuseau horaire source, cette méthode lève une ArgumentException.
Si la conversion de dateTime
entraîne une valeur de date et d’heure antérieure à DateTime.MinValue ou ultérieure à DateTime.MaxValue, cette méthode retourne DateTime.MinValue ou DateTime.MaxValue, respectivement.
La méthode ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) lève une exception ArgumentException si la propriété DateTime.Kind de l’argument dateTime
est DateTimeKind.Local, mais que l’argument sourceTimeZone
n’est pas TimeZoneInfo.Local. Pour déterminer si le fuseau horaire source est le fuseau horaire local ou le fuseau horaire universel, la méthode teste l’égalité de référence au lieu de tester l’égalité des valeurs avec la méthode Equals(TimeZoneInfo). Notez que TimeZoneInfo objets qui représentent le fuseau horaire local et qui sont récupérés en appelant la méthode FindSystemTimeZoneById n’ont pas d’égalité référentielle avec TimeZoneInfo.Local. En outre, TimeZoneInfo objets qui représentent le fuseau horaire local ou universel et qui sont récupérés en itérant la collection retournée par la méthode GetSystemTimeZones n’ont pas d’égalité référentielle avec TimeZoneInfo.Local ou TimeZoneInfo.Utc. En guise d’alternative, vous pouvez appeler la méthode ConvertTimeBySystemTimeZoneId(DateTime, String, String).