TimeZoneInfo.ConvertTime Methode

Definition

Konvertiert eine Zeit in die Zeit in einer bestimmten Zeitzone.

Überlädt

ConvertTime(DateTime, TimeZoneInfo)

Konvertiert eine Zeit in die Zeit in einer bestimmten Zeitzone.

ConvertTime(DateTimeOffset, TimeZoneInfo)

Konvertiert eine Zeit in die Zeit in einer bestimmten Zeitzone.

ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo)

Konvertiert eine Zeit aus einer Zeitzone in ein andere.

ConvertTime(DateTime, TimeZoneInfo)

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

Konvertiert eine Zeit in die Zeit in einer bestimmten Zeitzone.

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

Parameter

dateTime
DateTime

Das Datum und die Uhrzeit, die konvertiert werden sollen.

destinationTimeZone
TimeZoneInfo

Die Zeitzone, in die dateTime konvertiert werden soll.

Gibt zurück

Das Datum und die Uhrzeit in der Zielzeitzone.

Ausnahmen

Der Wert des dateTime-Parameters, der eine ungültige Zeit darstellt.

Der Wert des destinationTimeZone-Parameters ist null.

Beispiele

Im folgenden Beispiel wird ein Array von Datums- und Uhrzeitwerten in Zeiten in der östlichen Zeitzone der USA und Kanadas konvertiert. Es zeigt, dass die Quellzeitzone von der DateTime.Kind -Eigenschaft des Quellwerts DateTime abhängt. Außerdem wird veranschaulicht, dass die ConvertTime Methode Zeitzonenanpassungen berücksichtigt, da am 7. November 2010 um 2:00 Uhr eine Zeitzonenanpassung sowohl in der Quell- als auch in der Zielzeitzone erfolgt.

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.

Hinweise

Bei der Konvertierung wendet die ConvertTime(DateTimeOffset, TimeZoneInfo) -Methode alle in der destinationTimeZone Zeitzone geltenden Anpassungsregeln an.

Diese Überladung der ConvertTime(DateTime, TimeZoneInfo) -Methode bestimmt die Quellzeitzone anhand des Werts der dateTime -Eigenschaft des Kind Parameters, wie in der folgenden Tabelle dargestellt.

Kind-Eigenschaftswert Quellzeitzone Methodenverhalten
DateTimeKind.Local Local Konvertiert die Ortszeit in die Uhrzeit in destinationTimeZone.
DateTimeKind.Utc Utc Konvertiert koordinierte Weltzeit (UTC) in die Zeit in destinationTimeZone.
DateTimeKind.Unspecified Angenommen, dass ist Local. Konvertiert die Ortszeit in die Uhrzeit in destinationTimeZone.

Die Kind -Eigenschaft des zurückgegebenen Werts DateTime wird wie in der folgenden Tabelle dargestellt festgelegt.

Bedingung Zurückgegebener Kind-Eigenschaftswert
destinationTimeZone ist TimeZoneInfo.Utc. DateTimeKind.Utc
destinationTimeZone ist TimeZoneInfo.Local. DateTimeKind.Local
Alle anderen Datums- und Uhrzeitwerte und Zielzeitzonen. DateTimeKind.Unspecified

Wenn der Wert des dateTime Parameters eine mehrdeutige Ortszeit ist, wird er als Standardzeit interpretiert. Wenn der dateTime Parameter eine ungültige Ortszeit ist, löst diese Methode eine aus ArgumentException.

Wenn die Konvertierung von dateTime führt ein Datum und Uhrzeit-Wert, der älter als DateTime.MinValue oder später als DateTime.MaxValue, gibt diese Methode DateTime.MinValue oder DateTime.MaxValuebzw.

Sie können auch in oder von UTC konvertieren, indem Sie die ConvertTimeFromUtc Methoden und ConvertTimeToUtc aufrufen.

Weitere Informationen

Gilt für:

ConvertTime(DateTimeOffset, TimeZoneInfo)

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

Konvertiert eine Zeit in die Zeit in einer bestimmten Zeitzone.

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

Parameter

dateTimeOffset
DateTimeOffset

Das Datum und die Uhrzeit, die konvertiert werden sollen.

destinationTimeZone
TimeZoneInfo

Die Zeitzone, in die dateTime konvertiert werden soll.

Gibt zurück

Das Datum und die Uhrzeit in der Zielzeitzone.

Ausnahmen

Der Wert des destinationTimeZone-Parameters ist null.

Beispiele

Im folgenden Beispiel wird ein Array von DateTimeOffset Werten in zeiten in der östlichen Zeitzone der USA und Kanadas konvertiert. Es veranschaulicht, dass die ConvertTime Methode Zeitzonenanpassungen berücksichtigt, da am 7. November 2010 um 2:00 Uhr eine Zeitzonenanpassung sowohl in der Quell- als auch in der Zielzeitzone erfolgt.

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.

Hinweise

Bei der Konvertierung wendet die ConvertTime(DateTimeOffset, TimeZoneInfo) -Methode alle in der destinationTimeZone Zeitzone geltenden Anpassungsregeln an.

Diese Überladung unterscheidet sich von den anderen Überladungen der ConvertTime -Methode, indem sie einen DateTimeOffset Wert als ersten Parameter akzeptiert. Dadurch werden Datum und Uhrzeit als Offset der koordinierten Weltzeit (UTC) und nicht als Datum und Uhrzeit in einer bestimmten Zeitzone identifiziert. Daher kann der dateTimeOffset Parameter weder eine mehrdeutige Zeit noch eine ungültige Uhrzeit darstellen.

Bei der Konvertierung des dateTimeOffset Werts in die Zeit in der Zielzeitzone berücksichtigt diese Methode alle Anpassungsregeln, die in der Zielzeitzone gelten.

Wenn die Konvertierung von dateTimeOffset führt ein Datum und Uhrzeit-Wert, der älter als DateTimeOffset.MinValue oder später als DateTimeOffset.MaxValue, gibt diese Methode DateTimeOffset.MinValue oder DateTimeOffset.MaxValuebzw.

Weitere Informationen

Gilt für:

ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo)

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

Konvertiert eine Zeit aus einer Zeitzone in ein andere.

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

Parameter

dateTime
DateTime

Das Datum und die Uhrzeit, die konvertiert werden sollen.

sourceTimeZone
TimeZoneInfo

Die Zeitzone von dateTime.

destinationTimeZone
TimeZoneInfo

Die Zeitzone, in die dateTime konvertiert werden soll.

Gibt zurück

Das Datum und die Uhrzeit in der Zielzeitzone, die dem dateTime-Parameter in der Quellzeitzone entsprechen.

Ausnahmen

Die Kind-Eigenschaft des dateTime-Parameters ist Local, aber der sourceTimeZone-Parameter entspricht nicht Local.

- oder -

Die Kind-Eigenschaft des dateTime-Parameters ist Utc, aber der sourceTimeZone-Parameter entspricht nicht Utc.

- oder -

Der dateTime-Parameter gibt eine ungültige Zeit an (d. h. er stellt eine Zeit dar, die aufgrund der Anpassungsregeln einer Zeitzone nicht vorhanden ist).

Der sourceTimeZone-Parameter ist null.

- oder -

Der destinationTimeZone-Parameter ist null.

Beispiele

Das folgende Beispiel veranschaulicht die Verwendung der ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) -Methode zum Konvertieren von hawaiianischer Standardzeit in Ortszeit.

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

Hinweise

Bei der Konvertierung wendet die ConvertTime -Methode alle in der destinationTimeZone Zeitzone geltenden Anpassungsregeln an.

Der Wert der Kind -Eigenschaft des dateTime Parameters muss dem sourceTimeZone -Parameter entsprechen, wie in der folgenden Tabelle gezeigt.

DateTime.Kind-Wert sourceTimeZone-Wert Methodenverhalten
DateTimeKind.Utc Entspricht TimeZoneInfo.Utc. Konvertiert dateTime in die Uhrzeit der Zielzeitzone.
DateTimeKind.Utc Does not equal TimeZoneInfo.Utc. Löst eine aus ArgumentException.
DateTimeKind.Local Entspricht TimeZoneInfo.Local. Konvertiert dateTime in die Uhrzeit der Zielzeitzone.
DateTimeKind.Local Does not equal TimeZoneInfo.Local. Löst eine aus ArgumentException.
DateTimeKind.Unspecified Alle. Konvertiert dateTime in die Uhrzeit der Zielzeitzone.

Sie können auch in oder aus koordinierter Weltzeit (UTC) konvertieren, indem Sie die ConvertTimeFromUtc Methoden und ConvertTimeToUtc aufrufen.

Die Kind -Eigenschaft des zurückgegebenen Werts DateTime wird wie in der folgenden Tabelle dargestellt festgelegt.

Bedingung Zurückgegebener Kind-Eigenschaftswert
Das destinationTimeZone-Argument lautet TimeZoneInfo.Utc. DateTimeKind.Utc
Das destinationTimeZone-Argument lautet TimeZoneInfo.Local. DateTimeKind.Local
Alle anderen Datums- und Uhrzeitwerte, Quellzeitzonen und Zielzeitzonen. DateTimeKind.Unspecified

Wenn der Wert des dateTime Parameters eine mehrdeutige Zeit in der Quellzeitzone ist, wird er als Standardzeit interpretiert. Wenn der dateTime Parameter eine ungültige Uhrzeit in der Quellzeitzone ist, löst diese Methode eine aus ArgumentException.

Wenn die Konvertierung von dateTime führt ein Datum und Uhrzeit-Wert, der älter als DateTime.MinValue oder später als DateTime.MaxValue, gibt diese Methode DateTime.MinValue oder DateTime.MaxValuebzw.

Die ConvertTime(DateTime, TimeZoneInfo, TimeZoneInfo) -Methode löst eine Ausnahme aus ArgumentException , wenn die DateTime.Kind -Eigenschaft des dateTime Arguments ist DateTimeKind.Local , aber das sourceTimeZone Argument nicht TimeZoneInfo.Localist. Um zu bestimmen, ob die Quellzeitzone die lokale Zeitzone oder die universelle Zeitzone ist, testet die Methode auf Verweisgleichheit, anstatt auf Wertgleichheit mit der Equals(TimeZoneInfo) Methode zu testen. Beachten Sie, dass TimeZoneInfo Objekte, die die lokale Zeitzone darstellen und durch Aufrufen der FindSystemTimeZoneById -Methode abgerufen werden, keine referenzielle Gleichheit mit aufweisen TimeZoneInfo.Local. Darüber hinaus haben Objekte, TimeZoneInfo die die lokale oder universelle Zeitzone darstellen und durch Iterieren der von der GetSystemTimeZones -Methode zurückgegebenen Auflistung abgerufen werden, keine referenzielle Gleichheit mit TimeZoneInfo.Local oder TimeZoneInfo.Utc. Alternativ können Sie die ConvertTimeBySystemTimeZoneId(DateTime, String, String) -Methode aufrufen.

Weitere Informationen

Gilt für: