TimeZoneInfo.ConvertTime Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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).