TimeZoneInfo.ConvertTime Metoda

Definicja

Konwertuje czas na czas w określonej strefie czasowej.

Przeciążenia

ConvertTime(DateTime, TimeZoneInfo)

Konwertuje czas na czas w określonej strefie czasowej.

ConvertTime(DateTimeOffset, TimeZoneInfo)

Konwertuje czas na czas 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 czas 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, na która ma być konwertowana dateTime .

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 we wschodniej strefie czasowej Stanów Zjednoczonych i Kanady. Pokazuje ona, że źródłowa strefa czasowa zależy od DateTime.Kind właściwości wartości źródłowej DateTime . Ilustruje również, że ConvertTime metoda uwzględnia korekty strefy czasowej, ponieważ dostosowanie strefy czasowej odbywa się zarówno w źródłowych, jak i docelowych strefach czasowych 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 przeprowadzania konwersji ConvertTime(DateTimeOffset, TimeZoneInfo) metoda stosuje wszelkie reguły korekty obowiązujące w strefie czasowej destinationTimeZone .

To przeciążenie ConvertTime(DateTime, TimeZoneInfo) metody określa źródłową strefę czasową z wartości dateTime właściwości parametru Kind , 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 destinationTimeZonepliku .
DateTimeKind.Utc Utc Konwertuje uniwersalny czas koordynowany (UTC) na czas w destinationTimeZone.
DateTimeKind.Unspecified Przyjmuje się, że ma wartość Local. Konwertuje czas lokalny na czas w destinationTimeZonepliku .

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

Warunek Zwrócona wartość właściwości Kind
Wartość destinationTimeZone to TimeZoneInfo.Utc. DateTimeKind.Utc
Wartość destinationTimeZone to 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. dateTime Jeśli parametr jest nieprawidłowy czas lokalny, ta metoda zgłasza błąd ArgumentException.

Jeśli konwersja dateTime wyników ma wartość daty i godziny, która jest wcześniejsza niż lub nowsza niż DateTime.MaxValueDateTime.MinValue , ta metoda zwraca DateTime.MinValue wartość lub DateTime.MaxValue, odpowiednio.

Możesz również przeprowadzić konwersję na lub z czasu UTC, wywołując ConvertTimeFromUtc metody 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 czas 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, na która ma być konwertowana dateTime .

Zwraca

Data i godzina w docelowej strefie czasowej.

Wyjątki

Wartość parametru destinationTimeZone to null.

Przykłady

Poniższy przykład konwertuje tablicę DateTimeOffset wartości na godziny w strefie czasowej wschodniej Stanów Zjednoczonych i Kanady. Ilustruje to, że ConvertTime metoda uwzględnia korekty strefy czasowej, ponieważ dostosowanie strefy czasowej odbywa się zarówno w źródłowych, jak i docelowych strefach czasowych 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 przeprowadzania konwersji ConvertTime(DateTimeOffset, TimeZoneInfo) metoda stosuje wszelkie reguły korekty obowiązujące w strefie czasowej destinationTimeZone .

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

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

Jeśli konwersja dateTimeOffset wyników ma wartość daty i godziny, która jest wcześniejsza niż lub nowsza niż DateTimeOffset.MaxValueDateTimeOffset.MinValue , ta metoda zwraca DateTimeOffset.MinValue wartość lub DateTimeOffset.MaxValue, odpowiednio.

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, na która ma być konwertowana dateTime .

Zwraca

Data i godzina w docelowej strefie czasowej, która odpowiada parametrowi dateTime w źródłowej strefie czasowej.

Wyjątki

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

-lub-

Właściwość Kind parametru dateTime to Utc, ale sourceTimeZone parametr 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 ma wartość null.

-lub-

Parametr destinationTimeZone ma wartość null.

Przykłady

Poniższy przykład ilustruje użycie metody do konwersji ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) 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 przeprowadzania konwersji ConvertTime metoda stosuje wszelkie reguły korekty obowiązujące w strefie czasowej destinationTimeZone .

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

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

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

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

Warunek Zwrócona wartość właściwości Kind
Argumentem destinationTimeZone jest TimeZoneInfo.Utc. DateTimeKind.Utc
Argumentem destinationTimeZone jest 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. dateTime Jeśli parametr jest nieprawidłowy czas w źródłowej strefie czasowej, ta metoda zgłasza błąd ArgumentException.

Jeśli konwersja dateTime wyników ma wartość daty i godziny, która jest wcześniejsza niż lub nowsza niż DateTime.MaxValueDateTime.MinValue , ta metoda zwraca DateTime.MinValue wartość lub DateTime.MaxValue, odpowiednio.

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

Zobacz też

Dotyczy