TimeZoneInfo.ConvertTime Metodo

Definizione

Converte un'ora nell'ora di un particolare fuso orario.

Overload

ConvertTime(DateTime, TimeZoneInfo)

Converte un'ora nell'ora di un particolare fuso orario.

ConvertTime(DateTimeOffset, TimeZoneInfo)

Converte un'ora nell'ora di un particolare fuso orario.

ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo)

Converte un'ora da un fuso orario a un altro.

ConvertTime(DateTime, TimeZoneInfo)

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

Converte un'ora nell'ora di un particolare fuso orario.

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

Parametri

dateTime
DateTime

Data e ora da convertire.

destinationTimeZone
TimeZoneInfo

Fuso orario nel quale convertire dateTime.

Restituisce

Data e ora nel fuso orario di destinazione.

Eccezioni

Il valore del parametro dateTime rappresenta un'ora non valida.

Il valore del parametro destinationTimeZone è null.

Esempio

L'esempio seguente converte una matrice di valori di data e ora in orari nel fuso orario orientale degli Stati Uniti e del Canada. Indica che il fuso orario di origine dipende dalla DateTime.Kind proprietà del valore di origine DateTime . Viene inoltre illustrato che il metodo prende in considerazione le regolazioni del ConvertTime fuso orario, perché una regolazione del fuso orario si verifica sia nei fusi orari di origine che di destinazione alle 2:00 del 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.

Commenti

Quando si esegue la conversione, il ConvertTime(DateTimeOffset, TimeZoneInfo) metodo applica tutte le regole di regolazione applicate nel destinationTimeZone fuso orario.

Questo overload del ConvertTime(DateTime, TimeZoneInfo) metodo determina il fuso orario di origine dal valore della dateTime proprietà del Kind parametro, come illustrato nella tabella seguente.

Valore della proprietà Kind Fuso orario di origine Comportamento in caso di file di tipo Method
DateTimeKind.Local Local Converte l'ora locale nell'ora in destinationTimeZone.
DateTimeKind.Utc Utc Converte l'ora UTC (Coordinated Universal Time) nell'ora in destinationTimeZone.
DateTimeKind.Unspecified Si presuppone che sia Local. Converte l'ora locale nell'ora in destinationTimeZone.

La Kind proprietà del valore restituito viene impostata DateTime come illustrato nella tabella seguente.

Condizione Valore della proprietà Kind restituito
L'elemento destinationTimeZone è TimeZoneInfo.Utc. DateTimeKind.Utc
L'elemento destinationTimeZone è TimeZoneInfo.Local. DateTimeKind.Local
Tutti gli altri valori di data e ora e fusi orari di destinazione. DateTimeKind.Unspecified

Se il valore del dateTime parametro è un'ora locale ambigua, viene interpretata come ora solare. Se il dateTime parametro è un'ora locale non valida, questo metodo genera un'eccezione ArgumentException.

Se la conversione dei dateTime risultati in un valore di data e ora precedente DateTime.MinValue o successiva a DateTime.MaxValue, questo metodo restituisce DateTime.MinValue o DateTime.MaxValue, rispettivamente.

È anche possibile eseguire la conversione da o verso l'ora UTC chiamando i ConvertTimeFromUtc metodi e ConvertTimeToUtc .

Vedi anche

Si applica a

ConvertTime(DateTimeOffset, TimeZoneInfo)

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

Converte un'ora nell'ora di un particolare fuso orario.

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

Parametri

dateTimeOffset
DateTimeOffset

Data e ora da convertire.

destinationTimeZone
TimeZoneInfo

Fuso orario nel quale convertire dateTime.

Restituisce

Data e ora nel fuso orario di destinazione.

Eccezioni

Il valore del parametro destinationTimeZone è null.

Esempio

L'esempio seguente converte una matrice di DateTimeOffset valori in orari nel fuso orario orientale degli Stati Uniti e del Canada. Illustra che il ConvertTime metodo prende in considerazione le regolazioni del fuso orario, perché una regolazione del fuso orario si verifica sia nei fusi orari di origine che di destinazione alle 2:00 del 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.

Commenti

Quando si esegue la conversione, il ConvertTime(DateTimeOffset, TimeZoneInfo) metodo applica tutte le regole di regolazione applicate nel destinationTimeZone fuso orario.

Questo overload è diverso dagli altri overload del ConvertTime metodo accettando un DateTimeOffset valore come primo parametro. Identifica la data e l'ora come offset rispetto all'ora UTC (Coordinated Universal Time) anziché alla data e all'ora in un determinato fuso orario. Di conseguenza, il dateTimeOffset parametro non può rappresentare un'ora ambigua o un'ora non valida.

Per convertire il dateTimeOffset valore nell'ora nel fuso orario di destinazione, questo metodo tiene conto delle regole di regolazione applicate nel fuso orario di destinazione.

Se la conversione dei dateTimeOffset risultati in un valore di data e ora precedente DateTimeOffset.MinValue o successiva a DateTimeOffset.MaxValue, questo metodo restituisce DateTimeOffset.MinValue o DateTimeOffset.MaxValue, rispettivamente.

Vedi anche

Si applica a

ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo)

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

Converte un'ora da un fuso orario a un altro.

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

Parametri

dateTime
DateTime

Data e ora da convertire.

sourceTimeZone
TimeZoneInfo

Fuso orario di dateTime.

destinationTimeZone
TimeZoneInfo

Fuso orario nel quale convertire dateTime.

Restituisce

Data e ora nel fuso orario di destinazione corrispondente al parametro dateTime nel fuso orario di origine.

Eccezioni

La proprietà Kind del parametro dateTime è Local, ma il parametro sourceTimeZone non è uguale a Local.

-oppure-

La proprietà Kind del parametro dateTime è Utc, ma il parametro sourceTimeZone non è uguale a Utc.

-oppure-

Il parametro dateTime rappresenta un'ora non valida (ovvero rappresenta un'ora che non esiste a causa delle regole di rettifica del fuso orario).

Il valore del parametro sourceTimeZone è null.

-oppure-

Il valore del parametro destinationTimeZone è null.

Esempio

Nell'esempio seguente viene illustrato l'uso del metodo per eseguire la ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) conversione dall'ora solare hawaiana all'ora 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

Commenti

Quando si esegue la conversione, il ConvertTime metodo applica tutte le regole di regolazione applicate nel destinationTimeZone fuso orario.

Il valore della Kind proprietà del dateTime parametro deve corrispondere al sourceTimeZone parametro , come illustrato nella tabella seguente.

Valore DateTime.Kind valore sourceTimeZone Comportamento in caso di file di tipo Method
DateTimeKind.Utc TimeZoneInfo.UtcÈ uguale a . Converte dateTime nell'ora del fuso orario di destinazione.
DateTimeKind.Utc Does not equal TimeZoneInfo.Utc. Genera un'eccezione ArgumentException.
DateTimeKind.Local TimeZoneInfo.LocalÈ uguale a . Converte dateTime nell'ora del fuso orario di destinazione.
DateTimeKind.Local Does not equal TimeZoneInfo.Local. Genera un'eccezione ArgumentException.
DateTimeKind.Unspecified Qualsiasi. Converte dateTime nell'ora del fuso orario di destinazione.

È anche possibile eseguire la conversione in o dall'ora UTC (Coordinated Universal Time) chiamando i ConvertTimeFromUtc metodi e ConvertTimeToUtc .

La Kind proprietà del valore restituito viene impostata DateTime come illustrato nella tabella seguente.

Condizione Valore della proprietà Kind restituito
Il valore dell'argomento destinationTimeZone è TimeZoneInfo.Utc. DateTimeKind.Utc
Il valore dell'argomento destinationTimeZone è TimeZoneInfo.Local. DateTimeKind.Local
Tutti gli altri valori di data e ora, fusi orari di origine e fusi orari di destinazione. DateTimeKind.Unspecified

Se il valore del parametro è un'ora ambigua nel fuso orario di dateTime origine, viene interpretata come ora solare. Se il dateTime parametro è un'ora non valida nel fuso orario di origine, questo metodo genera un'eccezione ArgumentException.

Se la conversione dei dateTime risultati in un valore di data e ora precedente DateTime.MinValue o successiva a DateTime.MaxValue, questo metodo restituisce DateTime.MinValue o DateTime.MaxValue, rispettivamente.

Il ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) metodo genera un'eccezione ArgumentException se la DateTime.Kind proprietà dell'argomento è DateTimeKind.Local ma l'argomento dateTimesourceTimeZone non TimeZoneInfo.Localè . Per determinare se il fuso orario di origine è il fuso orario locale o il fuso orario universale, il metodo verifica l'uguaglianza dei riferimenti anziché verificare l'uguaglianza dei valori con il Equals(TimeZoneInfo) metodo . Si noti che TimeZoneInfo gli oggetti che rappresentano il fuso orario locale e che vengono recuperati chiamando il FindSystemTimeZoneById metodo non hanno uguaglianza referenziale con TimeZoneInfo.Local. Inoltre, TimeZoneInfo gli oggetti che rappresentano il fuso orario locale o universale e che vengono recuperati eseguendo l'iterazione della raccolta restituita dal GetSystemTimeZones metodo non hanno uguaglianza referenziale con TimeZoneInfo.Local o TimeZoneInfo.Utc. In alternativa, è possibile chiamare il ConvertTimeBySystemTimeZoneId(DateTime, String, String) metodo .

Vedi anche

Si applica a