Udostępnij za pośrednictwem


TimeZoneInfo.ConvertTime Metoda

Definicja

Konwertuje czas na godzinę w określonej strefie czasowej.

Przeciążenia

ConvertTime(DateTime, TimeZoneInfo)

Konwertuje czas na godzinę w określonej strefie czasowej.

ConvertTime(DateTimeOffset, TimeZoneInfo)

Konwertuje czas na godzinę w określonej strefie czasowej.

ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo)

Konwertuje czas z jednej strefy czasowej na inną.

ConvertTime(DateTime, TimeZoneInfo)

Źródło:
TimeZoneInfo.cs
Źródło:
TimeZoneInfo.cs
Źródło:
TimeZoneInfo.cs

Konwertuje czas na godzinę w określonej strefie czasowej.

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

Parametry

dateTime
DateTime

Data i godzina konwersji.

destinationTimeZone
TimeZoneInfo

Strefa czasowa do konwersji dateTime na.

Zwraca

Data i godzina w docelowej strefie czasowej.

Wyjątki

Wartość parametru dateTime reprezentuje nieprawidłowy czas.

Wartość parametru destinationTimeZone to null.

Przykłady

Poniższy przykład konwertuje tablicę wartości daty i godziny na godziny w strefie czasowej wschodniej Stanów Zjednoczonych i Kanady. Pokazuje, że źródłowa strefa czasowa zależy od właściwości DateTime.Kind wartości źródłowej DateTime. Ilustruje również, że metoda ConvertTime uwzględnia korekty strefy czasowej, ponieważ dostosowanie strefy czasowej odbywa się zarówno w strefach czasowych źródłowych, jak i docelowych o godzinie 2:00 w dniu 7 listopada 2010 r.

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.

Uwagi

Podczas konwersji metoda ConvertTime(DateTimeOffset, TimeZoneInfo) stosuje wszelkie reguły korekty obowiązujące w strefie czasowej destinationTimeZone.

To przeciążenie metody ConvertTime(DateTime, TimeZoneInfo) określa źródłową strefę czasową z wartości właściwości Kind parametru dateTime, jak pokazano w poniższej tabeli.

Wartość właściwości kind Źródłowa strefa czasowa Zachowanie metody
DateTimeKind.Local Local Konwertuje czas lokalny na czas w destinationTimeZone.
DateTimeKind.Utc Utc Konwertuje uniwersalny czas koordynowany (UTC) na czas w destinationTimeZone.
DateTimeKind.Unspecified Przyjmuje się, że Local. Konwertuje czas lokalny na czas w destinationTimeZone.

Właściwość Kind zwróconej wartości DateTime jest ustawiona, jak pokazano w poniższej tabeli.

Warunek Zwrócona wartość właściwości Kind
destinationTimeZone jest TimeZoneInfo.Utc. DateTimeKind.Utc
destinationTimeZone jest TimeZoneInfo.Local. DateTimeKind.Local
Wszystkie inne wartości daty i godziny oraz docelowe strefy czasowe. DateTimeKind.Unspecified

Jeśli wartość parametru dateTime jest niejednoznacznym czasem lokalnym, jest interpretowana jako czas standardowy. Jeśli parametr dateTime jest nieprawidłowy w czasie lokalnym, ta metoda zgłasza ArgumentException.

Jeśli konwersja dateTime powoduje, że wartość daty i godziny jest wcześniejsza niż DateTime.MinValue lub nowsza niż DateTime.MaxValue, ta metoda zwraca odpowiednio DateTime.MinValue lub DateTime.MaxValue.

Możesz również przekonwertować na lub z czasu UTC, wywołując metody ConvertTimeFromUtc i ConvertTimeToUtc.

Zobacz też

Dotyczy

ConvertTime(DateTimeOffset, TimeZoneInfo)

Źródło:
TimeZoneInfo.cs
Źródło:
TimeZoneInfo.cs
Źródło:
TimeZoneInfo.cs

Konwertuje czas na godzinę w określonej strefie czasowej.

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

Parametry

dateTimeOffset
DateTimeOffset

Data i godzina konwersji.

destinationTimeZone
TimeZoneInfo

Strefa czasowa do konwersji dateTimeOffset na.

Zwraca

Data i godzina w docelowej strefie czasowej.

Wyjątki

Wartość parametru destinationTimeZone to null.

Przykłady

Poniższy przykład konwertuje tablicę wartości DateTimeOffset na godziny we wschodniej strefie czasowej STANÓW Zjednoczonych i Kanady. Ilustruje to, że metoda ConvertTime uwzględnia korekty strefy czasowej, ponieważ dostosowanie strefy czasowej odbywa się zarówno w strefach czasowych źródłowych, jak i docelowych o godzinie 2:00 w dniu 7 listopada 2010 r.

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.

Uwagi

Podczas konwersji metoda ConvertTime(DateTimeOffset, TimeZoneInfo) stosuje wszelkie reguły korekty obowiązujące w strefie czasowej destinationTimeZone.

To przeciążenie różni się od innych przeciążeń metody ConvertTime, akceptując wartość DateTimeOffset jako pierwszy parametr. Pozwala to zidentyfikować datę i godzinę jako przesunięcie z uniwersalnego czasu koordynowanego (UTC), a nie jako datę i godzinę w określonej strefie czasowej. W związku z tym parametr dateTimeOffset nie może reprezentować niejednoznacznego czasu lub nieprawidłowego czasu.

W konwertowaniu wartości dateTimeOffset na godzinę w docelowej strefie czasowej ta metoda uwzględnia wszelkie reguły korekty obowiązujące w docelowej strefie czasowej.

Jeśli konwersja dateTimeOffset powoduje, że wartość daty i godziny jest wcześniejsza niż DateTimeOffset.MinValue lub nowsza niż DateTimeOffset.MaxValue, ta metoda zwraca odpowiednio DateTimeOffset.MinValue lub DateTimeOffset.MaxValue.

Zobacz też

Dotyczy

ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo)

Źródło:
TimeZoneInfo.cs
Źródło:
TimeZoneInfo.cs
Źródło:
TimeZoneInfo.cs

Konwertuje czas z jednej strefy czasowej na inną.

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

Parametry

dateTime
DateTime

Data i godzina konwersji.

sourceTimeZone
TimeZoneInfo

Strefa czasowa dateTime.

destinationTimeZone
TimeZoneInfo

Strefa czasowa do konwersji dateTime na.

Zwraca

Data i godzina w docelowej strefie czasowej odpowiadającej parametrowi dateTime w źródłowej strefie czasowej.

Wyjątki

Właściwość Kind parametru dateTime jest Local, ale parametr sourceTimeZone nie jest równy Local.

-lub-

Właściwość Kind parametru dateTime jest Utc, ale parametr sourceTimeZone nie jest równy Utc.

-lub-

Parametr dateTime jest nieprawidłowym czasem (oznacza to, że reprezentuje czas, który nie istnieje z powodu reguł korekty strefy czasowej).

Parametr sourceTimeZone jest null.

-lub-

Parametr destinationTimeZone jest null.

Przykłady

Poniższy przykład ilustruje użycie metody ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) do konwersji z hawajskiego czasu standardowego na czas lokalny.

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

Uwagi

Podczas konwersji metoda ConvertTime stosuje wszelkie reguły korekty obowiązujące w strefie czasowej destinationTimeZone.

Wartość właściwości Kind parametru dateTime musi odpowiadać parametrowi sourceTimeZone, jak pokazano w poniższej tabeli.

Wartość DateTime.Kind wartość sourceTimeZone Zachowanie metody
DateTimeKind.Utc Równa się TimeZoneInfo.Utc. Konwertuje dateTime na czas docelowej strefy czasowej.
DateTimeKind.Utc Nie jest równe TimeZoneInfo.Utc. Zgłasza ArgumentException.
DateTimeKind.Local Równa się TimeZoneInfo.Local. Konwertuje dateTime na czas docelowej strefy czasowej.
DateTimeKind.Local Nie jest równe TimeZoneInfo.Local. Zgłasza ArgumentException.
DateTimeKind.Unspecified Jakikolwiek. Konwertuje dateTime na czas docelowej strefy czasowej.

Możesz również przekonwertować na lub z uniwersalnego czasu koordynowanego (UTC), wywołując metody ConvertTimeFromUtc i ConvertTimeToUtc.

Właściwość Kind zwróconej wartości DateTime jest ustawiona, jak pokazano w poniższej tabeli.

Warunek Zwrócona wartość właściwości Kind
Argument destinationTimeZone to TimeZoneInfo.Utc. DateTimeKind.Utc
Argument destinationTimeZone to TimeZoneInfo.Local. DateTimeKind.Local
Wszystkie inne wartości daty i godziny, źródłowe strefy czasowe i docelowe strefy czasowe. DateTimeKind.Unspecified

Jeśli wartość parametru dateTime jest niejednoznacznym czasem w źródłowej strefie czasowej, jest interpretowana jako czas standardowy. Jeśli parametr dateTime jest nieprawidłowym czasem w źródłowej strefie czasowej, ta metoda zgłasza ArgumentException.

Jeśli konwersja dateTime powoduje, że wartość daty i godziny jest wcześniejsza niż DateTime.MinValue lub nowsza niż DateTime.MaxValue, ta metoda zwraca odpowiednio DateTime.MinValue lub DateTime.MaxValue.

Metoda ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) zgłasza wyjątek ArgumentException, jeśli właściwość DateTime.Kind argumentu dateTime jest DateTimeKind.Local, ale argument sourceTimeZone nie jest TimeZoneInfo.Local. Aby określić, czy źródłowa strefa czasowa jest lokalną strefą czasową, czy uniwersalną strefą czasową, metoda sprawdza równość odwołań zamiast testować równość wartości za pomocą metody Equals(TimeZoneInfo). Należy pamiętać, że TimeZoneInfo obiekty reprezentujące lokalną strefę czasową i pobierane przez wywołanie metody FindSystemTimeZoneById nie mają równości odwołań z TimeZoneInfo.Local. Ponadto TimeZoneInfo obiektów reprezentujących lokalną lub uniwersalną strefę czasową i pobieranych przez iterację kolekcji zwróconej przez metodę GetSystemTimeZones nie mają równości odwołań z TimeZoneInfo.Local lub TimeZoneInfo.Utc. Alternatywnie można wywołać metodę ConvertTimeBySystemTimeZoneId(DateTime, String, String).

Zobacz też

Dotyczy